[
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Animation.lua",
                "finish": [
                    42,
                    19
                ],
                "start": [
                    42,
                    10
                ],
                "type": "doc.class",
                "view": "Animation",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        50,
                        29
                    ],
                    "start": [
                        50,
                        20
                    ],
                    "type": "getlocal",
                    "view": "Animation"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    50,
                    17
                ],
                "name": "__index",
                "start": [
                    50,
                    0
                ],
                "type": "setfield",
                "view": "Animation",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        77,
                        26
                    ],
                    "start": [
                        77,
                        22
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    77,
                    19
                ],
                "name": "_resultDirty",
                "start": [
                    77,
                    2
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        118,
                        27
                    ],
                    "start": [
                        118,
                        22
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    118,
                    19
                ],
                "name": "_resultDirty",
                "start": [
                    118,
                    2
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                123,
                                8
                            ],
                            "name": "self",
                            "start": [
                                123,
                                8
                            ],
                            "type": "self",
                            "view": "Animation"
                        },
                        {
                            "finish": [
                                123,
                                32
                            ],
                            "name": "element",
                            "start": [
                                123,
                                25
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "finish": [
                        125,
                        3
                    ],
                    "start": [
                        123,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Animation:apply(element: Element)"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    123,
                    24
                ],
                "name": "apply",
                "start": [
                    123,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        43,
                        25
                    ],
                    "start": [
                        43,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                43,
                                25
                            ],
                            "start": [
                                43,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    43,
                    25
                ],
                "name": "duration",
                "start": [
                    43,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        46,
                        24
                    ],
                    "start": [
                        46,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                46,
                                24
                            ],
                            "start": [
                                46,
                                18
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    46,
                    24
                ],
                "name": "elapsed",
                "start": [
                    46,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a simple fade animation",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                132,
                                32
                            ],
                            "name": "duration",
                            "start": [
                                132,
                                24
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                132,
                                45
                            ],
                            "name": "fromOpacity",
                            "start": [
                                132,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                132,
                                56
                            ],
                            "name": "toOpacity",
                            "start": [
                                132,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Create a simple fade animation",
                    "finish": [
                        140,
                        3
                    ],
                    "rawdesc": " Create a simple fade animation",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Animation"
                        }
                    ],
                    "start": [
                        132,
                        0
                    ],
                    "type": "function",
                    "view": "function Animation.fade(duration: number, fromOpacity: number, toOpacity: number)\n  -> Animation"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    132,
                    23
                ],
                "name": "fade",
                "rawdesc": " Create a simple fade animation",
                "start": [
                    132,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        45,
                        64
                    ],
                    "start": [
                        45,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        45,
                                        30
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            45,
                                            22
                                        ],
                                        "start": [
                                            45,
                                            17
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        45,
                                        17
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        45,
                                        46
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            45,
                                            38
                                        ],
                                        "start": [
                                            45,
                                            32
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        45,
                                        32
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        45,
                                        63
                                    ],
                                    "name": {
                                        "[1]": "opacity",
                                        "finish": [
                                            45,
                                            55
                                        ],
                                        "start": [
                                            45,
                                            48
                                        ],
                                        "type": "doc.field.name",
                                        "view": "opacity"
                                    },
                                    "start": [
                                        45,
                                        48
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                45,
                                64
                            ],
                            "start": [
                                45,
                                16
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number, height: number, opacity: number }"
                        }
                    ],
                    "view": "{ width: number, height: number, opacity: number }"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    45,
                    64
                ],
                "name": "final",
                "start": [
                    45,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number, height: number, opacity: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                86,
                                8
                            ],
                            "name": "self",
                            "start": [
                                86,
                                8
                            ],
                            "type": "self",
                            "view": "Animation"
                        }
                    ],
                    "finish": [
                        120,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        86,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Animation:interpolate()\n  -> table"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    86,
                    30
                ],
                "name": "interpolate",
                "start": [
                    86,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "desc": "=====================================--\n For Animation.lua\n=====================================--",
                            "finish": [
                                54,
                                28
                            ],
                            "name": "props",
                            "rawdesc": "=====================================--\n For Animation.lua\n=====================================--",
                            "start": [
                                54,
                                23
                            ],
                            "type": "local",
                            "view": "AnimationProps"
                        }
                    ],
                    "finish": [
                        71,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Animation"
                        }
                    ],
                    "start": [
                        54,
                        0
                    ],
                    "type": "function",
                    "view": "function Animation.new(props: AnimationProps)\n  -> Animation"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    54,
                    22
                ],
                "name": "new",
                "start": [
                    54,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a simple scale animation\n\n@*param* `fromScale` — {width:number,height:number}\n\n@*param* `toScale` — {width:number,height:number}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                147,
                                33
                            ],
                            "name": "duration",
                            "start": [
                                147,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "{width:number,height:number}",
                            "finish": [
                                147,
                                44
                            ],
                            "name": "fromScale",
                            "rawdesc": "{width:number,height:number}",
                            "start": [
                                147,
                                35
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "{width:number,height:number}",
                            "finish": [
                                147,
                                53
                            ],
                            "name": "toScale",
                            "rawdesc": "{width:number,height:number}",
                            "start": [
                                147,
                                46
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Create a simple scale animation\n\n@*param* `fromScale` — {width:number,height:number}\n\n@*param* `toScale` — {width:number,height:number}",
                    "finish": [
                        155,
                        3
                    ],
                    "rawdesc": " Create a simple scale animation",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Animation"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "function Animation.scale(duration: number, fromScale: table, toScale: table)\n  -> Animation"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    147,
                    24
                ],
                "name": "scale",
                "rawdesc": " Create a simple scale animation",
                "start": [
                    147,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        44,
                        64
                    ],
                    "start": [
                        44,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        44,
                                        30
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            44,
                                            22
                                        ],
                                        "start": [
                                            44,
                                            17
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        44,
                                        17
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        44,
                                        46
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            44,
                                            38
                                        ],
                                        "start": [
                                            44,
                                            32
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        44,
                                        32
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        44,
                                        63
                                    ],
                                    "name": {
                                        "[1]": "opacity",
                                        "finish": [
                                            44,
                                            55
                                        ],
                                        "start": [
                                            44,
                                            48
                                        ],
                                        "type": "doc.field.name",
                                        "view": "opacity"
                                    },
                                    "start": [
                                        44,
                                        48
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                44,
                                64
                            ],
                            "start": [
                                44,
                                16
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number, height: number, opacity: number }"
                        }
                    ],
                    "view": "{ width: number, height: number, opacity: number }"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    44,
                    64
                ],
                "name": "start",
                "start": [
                    44,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number, height: number, opacity: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        47,
                        26
                    ],
                    "start": [
                        47,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                47,
                                25
                            ],
                            "start": [
                                47,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    47,
                    26
                ],
                "name": "transform",
                "start": [
                    47,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        48,
                        27
                    ],
                    "start": [
                        48,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                48,
                                26
                            ],
                            "start": [
                                48,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    48,
                    27
                ],
                "name": "transition",
                "start": [
                    48,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                75,
                                8
                            ],
                            "name": "self",
                            "start": [
                                75,
                                8
                            ],
                            "type": "self",
                            "view": "Animation"
                        },
                        {
                            "finish": [
                                75,
                                28
                            ],
                            "name": "dt",
                            "start": [
                                75,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "finish": [
                        83,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Animation:update(dt: number)\n  -> boolean"
                },
                "file": "modules/Animation.lua",
                "finish": [
                    75,
                    25
                ],
                "name": "update",
                "start": [
                    75,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "Animation",
        "type": "type",
        "view": "Animation"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "=====================================--\n For Animation.lua\n=====================================--",
                "file": "modules/types.lua",
                "finish": [
                    7,
                    24
                ],
                "rawdesc": "=====================================--\n For Animation.lua\n=====================================--",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "AnimationProps",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        8,
                        25
                    ],
                    "start": [
                        8,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                25
                            ],
                            "start": [
                                8,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/types.lua",
                "finish": [
                    8,
                    25
                ],
                "name": "duration",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        10,
                        64
                    ],
                    "start": [
                        10,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        10,
                                        30
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            10,
                                            22
                                        ],
                                        "start": [
                                            10,
                                            17
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        10,
                                        17
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        10,
                                        46
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            10,
                                            38
                                        ],
                                        "start": [
                                            10,
                                            32
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        10,
                                        32
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        10,
                                        63
                                    ],
                                    "name": {
                                        "[1]": "opacity",
                                        "finish": [
                                            10,
                                            55
                                        ],
                                        "start": [
                                            10,
                                            48
                                        ],
                                        "type": "doc.field.name",
                                        "view": "opacity"
                                    },
                                    "start": [
                                        10,
                                        48
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                10,
                                64
                            ],
                            "start": [
                                10,
                                16
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number, height: number, opacity: number }"
                        }
                    ],
                    "view": "{ width: number, height: number, opacity: number }"
                },
                "file": "modules/types.lua",
                "finish": [
                    10,
                    64
                ],
                "name": "final",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number, height: number, opacity: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        9,
                        64
                    ],
                    "start": [
                        9,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        9,
                                        30
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            9,
                                            22
                                        ],
                                        "start": [
                                            9,
                                            17
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        9,
                                        17
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        9,
                                        46
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            9,
                                            38
                                        ],
                                        "start": [
                                            9,
                                            32
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        9,
                                        32
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        9,
                                        63
                                    ],
                                    "name": {
                                        "[1]": "opacity",
                                        "finish": [
                                            9,
                                            55
                                        ],
                                        "start": [
                                            9,
                                            48
                                        ],
                                        "type": "doc.field.name",
                                        "view": "opacity"
                                    },
                                    "start": [
                                        9,
                                        48
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                9,
                                64
                            ],
                            "start": [
                                9,
                                16
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number, height: number, opacity: number }"
                        }
                    ],
                    "view": "{ width: number, height: number, opacity: number }"
                },
                "file": "modules/types.lua",
                "finish": [
                    9,
                    64
                ],
                "name": "start",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number, height: number, opacity: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        11,
                        26
                    ],
                    "start": [
                        11,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                25
                            ],
                            "start": [
                                11,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/types.lua",
                "finish": [
                    11,
                    26
                ],
                "name": "transform",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        12,
                        27
                    ],
                    "start": [
                        12,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                26
                            ],
                            "start": [
                                12,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/types.lua",
                "finish": [
                    12,
                    27
                ],
                "name": "transition",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            }
        ],
        "name": "AnimationProps",
        "type": "type",
        "view": "AnimationProps"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/types.lua",
                "finish": [
                    121,
                    16
                ],
                "start": [
                    121,
                    10
                ],
                "type": "doc.class",
                "view": "Border",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        124,
                        24
                    ],
                    "start": [
                        124,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                124,
                                24
                            ],
                            "start": [
                                124,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/types.lua",
                "finish": [
                    124,
                    24
                ],
                "name": "bottom",
                "start": [
                    124,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        125,
                        22
                    ],
                    "start": [
                        125,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                125,
                                22
                            ],
                            "start": [
                                125,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/types.lua",
                "finish": [
                    125,
                    22
                ],
                "name": "left",
                "start": [
                    125,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        123,
                        23
                    ],
                    "start": [
                        123,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                123,
                                23
                            ],
                            "start": [
                                123,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/types.lua",
                "finish": [
                    123,
                    23
                ],
                "name": "right",
                "start": [
                    123,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        122,
                        21
                    ],
                    "start": [
                        122,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                122,
                                21
                            ],
                            "start": [
                                122,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/types.lua",
                "finish": [
                    122,
                    21
                ],
                "name": "top",
                "start": [
                    122,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            }
        ],
        "name": "Border",
        "type": "type",
        "view": "Border"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "file": "modules/Color.lua",
                "finish": [
                    39,
                    15
                ],
                "rawdesc": " Utility class for color handling",
                "start": [
                    39,
                    10
                ],
                "type": "doc.class",
                "view": "Color",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        45,
                        21
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        45,
                        16
                    ],
                    "type": "getlocal",
                    "view": "Color"
                },
                "file": "modules/Color.lua",
                "finish": [
                    45,
                    13
                ],
                "name": "__index",
                "rawdesc": " Utility class for color handling",
                "start": [
                    45,
                    0
                ],
                "type": "setfield",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alpha component (0-1)",
                "extends": {
                    "finish": [
                        43,
                        18
                    ],
                    "start": [
                        43,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                43,
                                18
                            ],
                            "start": [
                                43,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Color.lua",
                "finish": [
                    43,
                    18
                ],
                "name": "a",
                "rawdesc": "Alpha component (0-1)",
                "start": [
                    43,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Blue component (0-1)",
                "extends": {
                    "finish": [
                        42,
                        18
                    ],
                    "start": [
                        42,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                42,
                                18
                            ],
                            "start": [
                                42,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Color.lua",
                "finish": [
                    42,
                    18
                ],
                "name": "b",
                "rawdesc": "Blue component (0-1)",
                "start": [
                    42,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Convert hex string to color\n Supports both 6-digit (#RRGGBB) and 8-digit (#RRGGBBAA) hex formats\n\n@*param* `hexWithTag` — e.g. \"#RRGGBB\" or \"#RRGGBBAA\"",
                "extends": {
                    "args": [
                        {
                            "desc": "e.g. \"#RRGGBB\" or \"#RRGGBBAA\"",
                            "finish": [
                                72,
                                33
                            ],
                            "name": "hexWithTag",
                            "rawdesc": "e.g. \"#RRGGBB\" or \"#RRGGBBAA\"",
                            "start": [
                                72,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Convert hex string to color\n Supports both 6-digit (#RRGGBB) and 8-digit (#RRGGBBAA) hex formats\n\n@*param* `hexWithTag` — e.g. \"#RRGGBB\" or \"#RRGGBBAA\"",
                    "finish": [
                        94,
                        3
                    ],
                    "rawdesc": " Convert hex string to color\n Supports both 6-digit (#RRGGBB) and 8-digit (#RRGGBBAA) hex formats",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Color"
                        }
                    ],
                    "start": [
                        72,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.fromHex(hexWithTag: string)\n  -> Color"
                },
                "file": "modules/Color.lua",
                "finish": [
                    72,
                    22
                ],
                "name": "fromHex",
                "rawdesc": " Convert hex string to color\n Supports both 6-digit (#RRGGBB) and 8-digit (#RRGGBBAA) hex formats",
                "start": [
                    72,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Green component (0-1)",
                "extends": {
                    "finish": [
                        41,
                        18
                    ],
                    "start": [
                        41,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                41,
                                18
                            ],
                            "start": [
                                41,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Color.lua",
                "finish": [
                    41,
                    18
                ],
                "name": "g",
                "rawdesc": "Green component (0-1)",
                "start": [
                    41,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if a value is a valid color format\n\n@*param* `value` — Value to check\n\n@*return* `format` — Format type (hex, rgb, rgba, named, table, nil if invalid)",
                "extends": {
                    "args": [
                        {
                            "desc": "Value to check",
                            "finish": [
                                208,
                                39
                            ],
                            "name": "value",
                            "rawdesc": "Value to check",
                            "start": [
                                208,
                                34
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": " Check if a value is a valid color format\n\n@*param* `value` — Value to check\n\n@*return* `format` — Format type (hex, rgb, rgba, named, table, nil if invalid)",
                    "finish": [
                        255,
                        3
                    ],
                    "rawdesc": " Check if a value is a valid color format",
                    "returns": [
                        {
                            "desc": "Format type (hex, rgb, rgba, named, table, nil if invalid)",
                            "name": "format",
                            "rawdesc": "Format type (hex, rgb, rgba, named, table, nil if invalid)",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        208,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.isValidColorFormat(value: any)\n  -> format: string?"
                },
                "file": "modules/Color.lua",
                "finish": [
                    208,
                    33
                ],
                "name": "isValidColorFormat",
                "rawdesc": " Check if a value is a valid color format",
                "start": [
                    208,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a new color instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                53,
                                20
                            ],
                            "name": "r",
                            "start": [
                                53,
                                19
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "finish": [
                                53,
                                23
                            ],
                            "name": "g",
                            "start": [
                                53,
                                22
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "finish": [
                                53,
                                26
                            ],
                            "name": "b",
                            "start": [
                                53,
                                25
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "finish": [
                                53,
                                29
                            ],
                            "name": "a",
                            "start": [
                                53,
                                28
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Create a new color instance",
                    "finish": [
                        60,
                        3
                    ],
                    "rawdesc": " Create a new color instance",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Color"
                        }
                    ],
                    "start": [
                        53,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.new(r?: number, g?: number, b?: number, a?: number)\n  -> Color"
                },
                "file": "modules/Color.lua",
                "finish": [
                    53,
                    18
                ],
                "name": "new",
                "rawdesc": " Create a new color instance",
                "start": [
                    53,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Parse a color from various formats\n\n@*param* `value` — Color value (hex, named, table)\n\n@*return* — Parsed color",
                "extends": {
                    "args": [
                        {
                            "desc": "Color value (hex, named, table)",
                            "finish": [
                                371,
                                26
                            ],
                            "name": "value",
                            "rawdesc": "Color value (hex, named, table)",
                            "start": [
                                371,
                                21
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": " Parse a color from various formats\n\n@*param* `value` — Color value (hex, named, table)\n\n@*return* — Parsed color",
                    "finish": [
                        373,
                        3
                    ],
                    "rawdesc": " Parse a color from various formats",
                    "returns": [
                        {
                            "desc": "Parsed color",
                            "rawdesc": "Parsed color",
                            "type": "function.return",
                            "view": "Color"
                        }
                    ],
                    "start": [
                        371,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.parse(value: any)\n  -> Color"
                },
                "file": "modules/Color.lua",
                "finish": [
                    371,
                    20
                ],
                "name": "parse",
                "rawdesc": " Parse a color from various formats",
                "start": [
                    371,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Red component (0-1)",
                "extends": {
                    "finish": [
                        40,
                        18
                    ],
                    "start": [
                        40,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                40,
                                18
                            ],
                            "start": [
                                40,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Color.lua",
                "finish": [
                    40,
                    18
                ],
                "name": "r",
                "rawdesc": "Red component (0-1)",
                "start": [
                    40,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Sanitize a color value\n\n@*param* `value` — Color value to sanitize\n\n@*param* `default` — Default color if invalid\n\n@*return* — Sanitized color",
                "extends": {
                    "args": [
                        {
                            "desc": "Color value to sanitize",
                            "finish": [
                                296,
                                34
                            ],
                            "name": "value",
                            "rawdesc": "Color value to sanitize",
                            "start": [
                                296,
                                29
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Default color if invalid",
                            "finish": [
                                296,
                                43
                            ],
                            "name": "default",
                            "rawdesc": "Default color if invalid",
                            "start": [
                                296,
                                36
                            ],
                            "type": "local",
                            "view": "Color?"
                        }
                    ],
                    "desc": " Sanitize a color value\n\n@*param* `value` — Color value to sanitize\n\n@*param* `default` — Default color if invalid\n\n@*return* — Sanitized color",
                    "finish": [
                        366,
                        3
                    ],
                    "rawdesc": " Sanitize a color value",
                    "returns": [
                        {
                            "desc": "Sanitized color",
                            "rawdesc": "Sanitized color",
                            "type": "function.return",
                            "view": "Color"
                        }
                    ],
                    "start": [
                        296,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.sanitizeColor(value: any, default?: Color)\n  -> Color"
                },
                "file": "modules/Color.lua",
                "finish": [
                    296,
                    28
                ],
                "name": "sanitizeColor",
                "rawdesc": " Sanitize a color value",
                "start": [
                    296,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                63,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                63,
                                8
                            ],
                            "type": "self",
                            "view": "Color"
                        }
                    ],
                    "finish": [
                        65,
                        3
                    ],
                    "returns": [
                        {
                            "name": "r",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "g",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "b",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "a",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        63,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Color:toRGBA()\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "modules/Color.lua",
                "finish": [
                    63,
                    21
                ],
                "name": "toRGBA",
                "start": [
                    63,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Validate a color value\n\n@*param* `value` — Color value to validate\n\n@*param* `options` — Validation options\n\n@*return* `valid` — True if valid\n\n@*return* `error` — Error message if invalid",
                "extends": {
                    "args": [
                        {
                            "desc": "Color value to validate",
                            "finish": [
                                262,
                                34
                            ],
                            "name": "value",
                            "rawdesc": "Color value to validate",
                            "start": [
                                262,
                                29
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Validation options",
                            "finish": [
                                262,
                                43
                            ],
                            "name": "options",
                            "rawdesc": "Validation options",
                            "start": [
                                262,
                                36
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": " Validate a color value\n\n@*param* `value` — Color value to validate\n\n@*param* `options` — Validation options\n\n@*return* `valid` — True if valid\n\n@*return* `error` — Error message if invalid",
                    "finish": [
                        290,
                        3
                    ],
                    "rawdesc": " Validate a color value",
                    "returns": [
                        {
                            "desc": "True if valid",
                            "name": "valid",
                            "rawdesc": "True if valid",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Error message if invalid",
                            "name": "error",
                            "rawdesc": "Error message if invalid",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        262,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.validateColor(value: any, options?: table)\n  -> valid: boolean\n  2. error: string?"
                },
                "file": "modules/Color.lua",
                "finish": [
                    262,
                    28
                ],
                "name": "validateColor",
                "rawdesc": " Validate a color value",
                "start": [
                    262,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Validate a single color channel value\n\n@*param* `value` — Value to validate\n\n@*param* `max` — Maximum value (255 for 0-255 range, 1 for 0-1 range)\n\n@*return* `valid` — True if valid\n\n@*return* `clamped` — Clamped value in 0-1 range",
                "extends": {
                    "args": [
                        {
                            "desc": "Value to validate",
                            "finish": [
                                101,
                                41
                            ],
                            "name": "value",
                            "rawdesc": "Value to validate",
                            "start": [
                                101,
                                36
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Maximum value (255 for 0-255 range, 1 for 0-1 range)",
                            "finish": [
                                101,
                                46
                            ],
                            "name": "max",
                            "rawdesc": "Maximum value (255 for 0-255 range, 1 for 0-1 range)",
                            "start": [
                                101,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Validate a single color channel value\n\n@*param* `value` — Value to validate\n\n@*param* `max` — Maximum value (255 for 0-255 range, 1 for 0-1 range)\n\n@*return* `valid` — True if valid\n\n@*return* `clamped` — Clamped value in 0-1 range",
                    "finish": [
                        128,
                        3
                    ],
                    "rawdesc": " Validate a single color channel value",
                    "returns": [
                        {
                            "desc": "True if valid",
                            "name": "valid",
                            "rawdesc": "True if valid",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Clamped value in 0-1 range",
                            "name": "clamped",
                            "rawdesc": "Clamped value in 0-1 range",
                            "type": "function.return",
                            "view": "number?"
                        }
                    ],
                    "start": [
                        101,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.validateColorChannel(value: any, max?: number)\n  -> valid: boolean\n  2. clamped: number?"
                },
                "file": "modules/Color.lua",
                "finish": [
                    101,
                    35
                ],
                "name": "validateColorChannel",
                "rawdesc": " Validate a single color channel value",
                "start": [
                    101,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Validate hex color format\n\n@*param* `hex` — Hex color string (with or without #)\n\n@*return* `valid` — True if valid format\n\n@*return* `error` — Error message if invalid",
                "extends": {
                    "args": [
                        {
                            "desc": "Hex color string (with or without #)",
                            "finish": [
                                134,
                                35
                            ],
                            "name": "hex",
                            "rawdesc": "Hex color string (with or without #)",
                            "start": [
                                134,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Validate hex color format\n\n@*param* `hex` — Hex color string (with or without #)\n\n@*return* `valid` — True if valid format\n\n@*return* `error` — Error message if invalid",
                    "finish": [
                        153,
                        3
                    ],
                    "rawdesc": " Validate hex color format",
                    "returns": [
                        {
                            "desc": "True if valid format",
                            "name": "valid",
                            "rawdesc": "True if valid format",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Error message if invalid",
                            "name": "error",
                            "rawdesc": "Error message if invalid",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        134,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.validateHexColor(hex: string)\n  -> valid: boolean\n  2. error: string?"
                },
                "file": "modules/Color.lua",
                "finish": [
                    134,
                    31
                ],
                "name": "validateHexColor",
                "rawdesc": " Validate hex color format",
                "start": [
                    134,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Validate named color\n\n@*param* `name` — Color name\n\n@*return* `valid` — True if valid\n\n@*return* `error` — Error message if invalid",
                "extends": {
                    "args": [
                        {
                            "desc": "Color name",
                            "finish": [
                                192,
                                38
                            ],
                            "name": "name",
                            "rawdesc": "Color name",
                            "start": [
                                192,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Validate named color\n\n@*param* `name` — Color name\n\n@*return* `valid` — True if valid\n\n@*return* `error` — Error message if invalid",
                    "finish": [
                        203,
                        3
                    ],
                    "rawdesc": " Validate named color",
                    "returns": [
                        {
                            "desc": "True if valid",
                            "name": "valid",
                            "rawdesc": "True if valid",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Error message if invalid",
                            "name": "error",
                            "rawdesc": "Error message if invalid",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        192,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.validateNamedColor(name: string)\n  -> valid: boolean\n  2. error: string?"
                },
                "file": "modules/Color.lua",
                "finish": [
                    192,
                    33
                ],
                "name": "validateNamedColor",
                "rawdesc": " Validate named color",
                "start": [
                    192,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Validate RGB/RGBA color values\n\n@*param* `r` — Red component\n\n@*param* `g` — Green component\n\n@*param* `b` — Blue component\n\n@*param* `a` — Alpha component (optional)\n\n@*param* `max` — Maximum value (255 or 1)\n\n@*return* `valid` — True if valid\n\n@*return* `error` — Error message if invalid",
                "extends": {
                    "args": [
                        {
                            "desc": "Red component",
                            "finish": [
                                163,
                                33
                            ],
                            "name": "r",
                            "rawdesc": "Red component",
                            "start": [
                                163,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Green component",
                            "finish": [
                                163,
                                36
                            ],
                            "name": "g",
                            "rawdesc": "Green component",
                            "start": [
                                163,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Blue component",
                            "finish": [
                                163,
                                39
                            ],
                            "name": "b",
                            "rawdesc": "Blue component",
                            "start": [
                                163,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha component (optional)",
                            "finish": [
                                163,
                                42
                            ],
                            "name": "a",
                            "rawdesc": "Alpha component (optional)",
                            "start": [
                                163,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Maximum value (255 or 1)",
                            "finish": [
                                163,
                                47
                            ],
                            "name": "max",
                            "rawdesc": "Maximum value (255 or 1)",
                            "start": [
                                163,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Validate RGB/RGBA color values\n\n@*param* `r` — Red component\n\n@*param* `g` — Green component\n\n@*param* `b` — Blue component\n\n@*param* `a` — Alpha component (optional)\n\n@*param* `max` — Maximum value (255 or 1)\n\n@*return* `valid` — True if valid\n\n@*return* `error` — Error message if invalid",
                    "finish": [
                        186,
                        3
                    ],
                    "rawdesc": " Validate RGB/RGBA color values",
                    "returns": [
                        {
                            "desc": "True if valid",
                            "name": "valid",
                            "rawdesc": "True if valid",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Error message if invalid",
                            "name": "error",
                            "rawdesc": "Error message if invalid",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "function Color.validateRGBColor(r: number, g: number, b: number, a?: number, max?: number)\n  -> valid: boolean\n  2. error: string?"
                },
                "file": "modules/Color.lua",
                "finish": [
                    163,
                    31
                ],
                "name": "validateRGBColor",
                "rawdesc": " Validate RGB/RGBA color values",
                "start": [
                    163,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "Color",
        "type": "type",
        "view": "Color"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Context.lua",
                "finish": [
                    0,
                    17
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "Context",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear frame elements (called at start of each immediate mode frame)",
                "extends": {
                    "args": [],
                    "desc": " Clear frame elements (called at start of each immediate mode frame)",
                    "finish": [
                        54,
                        3
                    ],
                    "rawdesc": " Clear frame elements (called at start of each immediate mode frame)",
                    "start": [
                        52,
                        0
                    ],
                    "type": "function",
                    "view": "function Context.clearFrameElements()"
                },
                "file": "modules/Context.lua",
                "finish": [
                    52,
                    35
                ],
                "name": "clearFrameElements",
                "rawdesc": " Clear frame elements (called at start of each immediate mode frame)",
                "start": [
                    52,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get current scale factors\n\n@*return* — scaleX, scaleY",
                "extends": {
                    "args": [],
                    "desc": " Get current scale factors\n\n@*return* — scaleX, scaleY",
                    "finish": [
                        39,
                        3
                    ],
                    "rawdesc": " Get current scale factors",
                    "returns": [
                        {
                            "desc": "scaleX, scaleY",
                            "rawdesc": "scaleX, scaleY",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "scaleX, scaleY",
                            "rawdesc": "scaleX, scaleY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        37,
                        0
                    ],
                    "type": "function",
                    "view": "function Context.getScaleFactors()\n  -> number\n  2. number"
                },
                "file": "modules/Context.lua",
                "finish": [
                    37,
                    32
                ],
                "name": "getScaleFactors",
                "rawdesc": " Get current scale factors",
                "start": [
                    37,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the topmost element at a screen position\n\n@*param* `x` — Screen X coordinate\n\n@*param* `y` — Screen Y coordinate\n\n@*return* `The` — topmost element at the position, or nil if none",
                "extends": {
                    "args": [
                        {
                            "desc": "Screen X coordinate",
                            "finish": [
                                127,
                                34
                            ],
                            "name": "x",
                            "rawdesc": "Screen X coordinate",
                            "start": [
                                127,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Screen Y coordinate",
                            "finish": [
                                127,
                                37
                            ],
                            "name": "y",
                            "rawdesc": "Screen Y coordinate",
                            "start": [
                                127,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Get the topmost element at a screen position\n\n@*param* `x` — Screen X coordinate\n\n@*param* `y` — Screen Y coordinate\n\n@*return* `The` — topmost element at the position, or nil if none",
                    "finish": [
                        160,
                        3
                    ],
                    "rawdesc": " Get the topmost element at a screen position",
                    "returns": [
                        {
                            "desc": "topmost element at the position, or nil if none",
                            "name": "The",
                            "rawdesc": "topmost element at the position, or nil if none",
                            "type": "function.return",
                            "view": "Element|nil"
                        }
                    ],
                    "start": [
                        127,
                        0
                    ],
                    "type": "function",
                    "view": "function Context.getTopElementAt(x: number, y: number)\n  -> The: Element|nil"
                },
                "file": "modules/Context.lua",
                "finish": [
                    127,
                    32
                ],
                "name": "getTopElementAt",
                "rawdesc": " Get the topmost element at a screen position",
                "start": [
                    127,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Register an element in the z-index ordered tree (for immediate mode)\n\n@*param* `element` — The element to register",
                "extends": {
                    "args": [
                        {
                            "desc": "The element to register",
                            "finish": [
                                43,
                                40
                            ],
                            "name": "element",
                            "rawdesc": "The element to register",
                            "start": [
                                43,
                                33
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "desc": " Register an element in the z-index ordered tree (for immediate mode)\n\n@*param* `element` — The element to register",
                    "finish": [
                        49,
                        3
                    ],
                    "rawdesc": " Register an element in the z-index ordered tree (for immediate mode)",
                    "start": [
                        43,
                        0
                    ],
                    "type": "function",
                    "view": "function Context.registerElement(element: Element)"
                },
                "file": "modules/Context.lua",
                "finish": [
                    43,
                    32
                ],
                "name": "registerElement",
                "rawdesc": " Register an element in the z-index ordered tree (for immediate mode)",
                "start": [
                    43,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Sort elements by z-index (called after all elements are registered)",
                "extends": {
                    "args": [],
                    "desc": " Sort elements by z-index (called after all elements are registered)",
                    "finish": [
                        74,
                        3
                    ],
                    "rawdesc": " Sort elements by z-index (called after all elements are registered)",
                    "start": [
                        57,
                        0
                    ],
                    "type": "function",
                    "view": "function Context.sortElementsByZIndex()"
                },
                "file": "modules/Context.lua",
                "finish": [
                    57,
                    37
                ],
                "name": "sortElementsByZIndex",
                "rawdesc": " Sort elements by z-index (called after all elements are registered)",
                "start": [
                    57,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "Context",
        "type": "type",
        "view": "Context"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Element.lua",
                "finish": [
                    0,
                    17
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "Element",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        141,
                        25
                    ],
                    "start": [
                        141,
                        18
                    ],
                    "type": "getlocal",
                    "view": "Element"
                },
                "file": "modules/Element.lua",
                "finish": [
                    141,
                    15
                ],
                "name": "__index",
                "start": [
                    141,
                    0
                ],
                "type": "setfield",
                "view": "Element",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached blur effect instance",
                "extends": {
                    "finish": [
                        68,
                        30
                    ],
                    "start": [
                        68,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                68,
                                29
                            ],
                            "start": [
                                68,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    68,
                    30
                ],
                "name": "_blurInstance",
                "rawdesc": "Internal: cached blur effect instance",
                "start": [
                    68,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached border-box height",
                "extends": {
                    "finish": [
                        112,
                        34
                    ],
                    "start": [
                        112,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                112,
                                33
                            ],
                            "start": [
                                112,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    112,
                    34
                ],
                "name": "_borderBoxHeight",
                "rawdesc": "Internal: cached border-box height",
                "start": [
                    112,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached border-box width",
                "extends": {
                    "finish": [
                        111,
                        33
                    ],
                    "start": [
                        111,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                111,
                                32
                            ],
                            "start": [
                                111,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    111,
                    33
                ],
                "name": "_borderBoxWidth",
                "rawdesc": "Internal: cached border-box width",
                "start": [
                    111,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Calculate scrollbar dimensions and positions (delegates to ScrollManager)\n\n@*return* — {vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1389,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1389,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Calculate scrollbar dimensions and positions (delegates to ScrollManager)\n\n@*return* — {vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                    "finish": [
                        1398,
                        3
                    ],
                    "rawdesc": " Calculate scrollbar dimensions and positions (delegates to ScrollManager)",
                    "returns": [
                        {
                            "desc": "{vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                            "rawdesc": "{vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        1389,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_calculateScrollbarDimensions()\n  -> table"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1389,
                    46
                ],
                "name": "_calculateScrollbarDimensions",
                "rawdesc": " Calculate scrollbar dimensions and positions (delegates to ScrollManager)",
                "start": [
                    1389,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: total content height",
                "extends": {
                    "finish": [
                        125,
                        32
                    ],
                    "start": [
                        125,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                125,
                                31
                            ],
                            "start": [
                                125,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    125,
                    32
                ],
                "name": "_contentHeight",
                "rawdesc": "Internal: total content height",
                "start": [
                    125,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: total content width",
                "extends": {
                    "finish": [
                        124,
                        31
                    ],
                    "start": [
                        124,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                124,
                                30
                            ],
                            "start": [
                                124,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    124,
                    31
                ],
                "name": "_contentWidth",
                "rawdesc": "Internal: total content width",
                "start": [
                    124,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: timer for how long cursor blink has been paused",
                "extends": {
                    "finish": [
                        90,
                        40
                    ],
                    "start": [
                        90,
                        33
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                90,
                                39
                            ],
                            "start": [
                                90,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    90,
                    40
                ],
                "name": "_cursorBlinkPauseTimer",
                "rawdesc": "Internal: timer for how long cursor blink has been paused",
                "start": [
                    90,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: whether cursor blink is paused (e.g., while typing)",
                "extends": {
                    "finish": [
                        89,
                        37
                    ],
                    "start": [
                        89,
                        29
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                89,
                                36
                            ],
                            "start": [
                                89,
                                29
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    89,
                    37
                ],
                "name": "_cursorBlinkPaused",
                "rawdesc": "Internal: whether cursor blink is paused (e.g., while typing)",
                "start": [
                    89,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cursor blink timer",
                "extends": {
                    "finish": [
                        87,
                        35
                    ],
                    "start": [
                        87,
                        28
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                87,
                                34
                            ],
                            "start": [
                                87,
                                28
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    87,
                    35
                ],
                "name": "_cursorBlinkTimer",
                "rawdesc": "Internal: cursor blink timer",
                "start": [
                    87,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cursor column within line",
                "extends": {
                    "finish": [
                        86,
                        31
                    ],
                    "start": [
                        86,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                86,
                                30
                            ],
                            "start": [
                                86,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    86,
                    31
                ],
                "name": "_cursorColumn",
                "rawdesc": "Internal: cursor column within line",
                "start": [
                    86,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cursor line number (1-based)",
                "extends": {
                    "finish": [
                        85,
                        29
                    ],
                    "start": [
                        85,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                85,
                                28
                            ],
                            "start": [
                                85,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    85,
                    29
                ],
                "name": "_cursorLine",
                "rawdesc": "Internal: cursor line number (1-based)",
                "start": [
                    85,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cursor character position (0-based)",
                "extends": {
                    "finish": [
                        84,
                        33
                    ],
                    "start": [
                        84,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                84,
                                32
                            ],
                            "start": [
                                84,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    84,
                    33
                ],
                "name": "_cursorPosition",
                "rawdesc": "Internal: cursor character position (0-based)",
                "start": [
                    84,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cursor visibility state",
                "extends": {
                    "finish": [
                        88,
                        33
                    ],
                    "start": [
                        88,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                88,
                                32
                            ],
                            "start": [
                                88,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    88,
                    33
                ],
                "name": "_cursorVisible",
                "rawdesc": "Internal: cursor visibility state",
                "start": [
                    88,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Detect if content overflows container bounds (delegates to ScrollManager)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1370,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1370,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Detect if content overflows container bounds (delegates to ScrollManager)",
                    "finish": [
                        1375,
                        3
                    ],
                    "rawdesc": " Detect if content overflows container bounds (delegates to ScrollManager)",
                    "start": [
                        1370,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_detectOverflow()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1370,
                    32
                ],
                "name": "_detectOverflow",
                "rawdesc": " Detect if content overflows container bounds (delegates to ScrollManager)",
                "start": [
                    1370,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Event handler instance for input processing",
                "extends": {
                    "finish": [
                        48,
                        36
                    ],
                    "start": [
                        48,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                48,
                                36
                            ],
                            "start": [
                                48,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "EventHandler"
                        }
                    ],
                    "view": "EventHandler"
                },
                "file": "modules/Element.lua",
                "finish": [
                    48,
                    36
                ],
                "name": "_eventHandler",
                "rawdesc": "Event handler instance for input processing",
                "start": [
                    48,
                    10
                ],
                "type": "doc.field",
                "view": "EventHandler",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        49,
                        38
                    ],
                    "start": [
                        49,
                        30
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                49,
                                37
                            ],
                            "start": [
                                49,
                                30
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    49,
                    38
                ],
                "name": "_explicitlyAbsolute",
                "start": [
                    49,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: focus state",
                "extends": {
                    "finish": [
                        94,
                        27
                    ],
                    "start": [
                        94,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                94,
                                26
                            ],
                            "start": [
                                94,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    94,
                    27
                ],
                "name": "_focused",
                "rawdesc": "Internal: focus state",
                "start": [
                    94,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2575,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2575,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "finish": [
                        2577,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        2575,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_getFont()\n  -> love.Font"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2575,
                    25
                ],
                "name": "_getFont",
                "start": [
                    2575,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get scrollbar at mouse position (delegates to ScrollManager)\n\n@*return* — {component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1406,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1406,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1406,
                                47
                            ],
                            "name": "mouseX",
                            "start": [
                                1406,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1406,
                                55
                            ],
                            "name": "mouseY",
                            "start": [
                                1406,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Get scrollbar at mouse position (delegates to ScrollManager)\n\n@*return* — {component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                    "finish": [
                        1411,
                        3
                    ],
                    "rawdesc": " Get scrollbar at mouse position (delegates to ScrollManager)",
                    "returns": [
                        {
                            "desc": "{component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                            "rawdesc": "{component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                            "type": "function.return",
                            "view": "table|nil"
                        }
                    ],
                    "start": [
                        1406,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_getScrollbarAtPosition(mouseX: number, mouseY: number)\n  -> table|nil"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1406,
                    40
                ],
                "name": "_getScrollbarAtPosition",
                "rawdesc": " Get scrollbar at mouse position (delegates to ScrollManager)",
                "start": [
                    1406,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle scrollbar drag (delegates to ScrollManager)\n\n@*return* — True if event was consumed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1431,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1431,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1431,
                                44
                            ],
                            "name": "mouseX",
                            "start": [
                                1431,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1431,
                                52
                            ],
                            "name": "mouseY",
                            "start": [
                                1431,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle scrollbar drag (delegates to ScrollManager)\n\n@*return* — True if event was consumed",
                    "finish": [
                        1438,
                        3
                    ],
                    "rawdesc": " Handle scrollbar drag (delegates to ScrollManager)",
                    "returns": [
                        {
                            "desc": "True if event was consumed",
                            "rawdesc": "True if event was consumed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1431,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_handleScrollbarDrag(mouseX: number, mouseY: number)\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1431,
                    37
                ],
                "name": "_handleScrollbarDrag",
                "rawdesc": " Handle scrollbar drag (delegates to ScrollManager)",
                "start": [
                    1431,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle scrollbar mouse press\n\n@*return* — True if event was consumed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1418,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1418,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1418,
                                45
                            ],
                            "name": "mouseX",
                            "start": [
                                1418,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1418,
                                53
                            ],
                            "name": "mouseY",
                            "start": [
                                1418,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1418,
                                61
                            ],
                            "name": "button",
                            "start": [
                                1418,
                                55
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle scrollbar mouse press\n\n@*return* — True if event was consumed",
                    "finish": [
                        1425,
                        3
                    ],
                    "rawdesc": " Handle scrollbar mouse press",
                    "returns": [
                        {
                            "desc": "True if event was consumed",
                            "rawdesc": "True if event was consumed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1418,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_handleScrollbarPress(mouseX: number, mouseY: number, button: number)\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1418,
                    38
                ],
                "name": "_handleScrollbarPress",
                "rawdesc": " Handle scrollbar mouse press",
                "start": [
                    1418,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle scrollbar release (delegates to ScrollManager)\n\n@*return* — True if event was consumed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1443,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1443,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1443,
                                47
                            ],
                            "name": "button",
                            "start": [
                                1443,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle scrollbar release (delegates to ScrollManager)\n\n@*return* — True if event was consumed",
                    "finish": [
                        1450,
                        3
                    ],
                    "rawdesc": " Handle scrollbar release (delegates to ScrollManager)",
                    "returns": [
                        {
                            "desc": "True if event was consumed",
                            "rawdesc": "True if event was consumed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1443,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_handleScrollbarRelease(button: number)\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1443,
                    40
                ],
                "name": "_handleScrollbarRelease",
                "rawdesc": " Handle scrollbar release (delegates to ScrollManager)",
                "start": [
                    1443,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse click on text (set cursor position or start selection)\n\n@*param* `mouseX` — Mouse X coordinate\n\n@*param* `mouseY` — Mouse Y coordinate\n\n@*param* `clickCount` — Number of clicks (1=single, 2=double, 3=triple)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2587,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2587,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Mouse X coordinate",
                            "finish": [
                                2587,
                                40
                            ],
                            "name": "mouseX",
                            "rawdesc": "Mouse X coordinate",
                            "start": [
                                2587,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y coordinate",
                            "finish": [
                                2587,
                                48
                            ],
                            "name": "mouseY",
                            "rawdesc": "Mouse Y coordinate",
                            "start": [
                                2587,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Number of clicks (1=single, 2=double, 3=triple)",
                            "finish": [
                                2587,
                                60
                            ],
                            "name": "clickCount",
                            "rawdesc": "Number of clicks (1=single, 2=double, 3=triple)",
                            "start": [
                                2587,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle mouse click on text (set cursor position or start selection)\n\n@*param* `mouseX` — Mouse X coordinate\n\n@*param* `mouseY` — Mouse Y coordinate\n\n@*param* `clickCount` — Number of clicks (1=single, 2=double, 3=triple)",
                    "finish": [
                        2595,
                        3
                    ],
                    "rawdesc": " Handle mouse click on text (set cursor position or start selection)",
                    "start": [
                        2587,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_handleTextClick(mouseX: number, mouseY: number, clickCount: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2587,
                    33
                ],
                "name": "_handleTextClick",
                "rawdesc": " Handle mouse click on text (set cursor position or start selection)",
                "start": [
                    2587,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse drag for text selection\n\n@*param* `mouseX` — Mouse X coordinate\n\n@*param* `mouseY` — Mouse Y coordinate",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2600,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2600,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Mouse X coordinate",
                            "finish": [
                                2600,
                                39
                            ],
                            "name": "mouseX",
                            "rawdesc": "Mouse X coordinate",
                            "start": [
                                2600,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y coordinate",
                            "finish": [
                                2600,
                                47
                            ],
                            "name": "mouseY",
                            "rawdesc": "Mouse Y coordinate",
                            "start": [
                                2600,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle mouse drag for text selection\n\n@*param* `mouseX` — Mouse X coordinate\n\n@*param* `mouseY` — Mouse Y coordinate",
                    "finish": [
                        2605,
                        3
                    ],
                    "rawdesc": " Handle mouse drag for text selection",
                    "start": [
                        2600,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_handleTextDrag(mouseX: number, mouseY: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2600,
                    32
                ],
                "name": "_handleTextDrag",
                "rawdesc": " Handle mouse drag for text selection",
                "start": [
                    2600,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse wheel scrolling (delegates to ScrollManager)\n\n@*param* `x` — Horizontal scroll amount\n\n@*param* `y` — Vertical scroll amount\n\n@*return* — True if scroll was handled",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1456,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1456,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Horizontal scroll amount",
                            "finish": [
                                1456,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "Horizontal scroll amount",
                            "start": [
                                1456,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Vertical scroll amount",
                            "finish": [
                                1456,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "Vertical scroll amount",
                            "start": [
                                1456,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle mouse wheel scrolling (delegates to ScrollManager)\n\n@*param* `x` — Horizontal scroll amount\n\n@*param* `y` — Vertical scroll amount\n\n@*return* — True if scroll was handled",
                    "finish": [
                        1463,
                        3
                    ],
                    "rawdesc": " Handle mouse wheel scrolling (delegates to ScrollManager)",
                    "returns": [
                        {
                            "desc": "True if scroll was handled",
                            "rawdesc": "True if scroll was handled",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1456,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_handleWheelScroll(x: number, y: number)\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1456,
                    35
                ],
                "name": "_handleWheelScroll",
                "rawdesc": " Handle mouse wheel scrolling (delegates to ScrollManager)",
                "start": [
                    1456,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: currently hovered scrollbar info",
                "extends": {
                    "finish": [
                        133,
                        34
                    ],
                    "start": [
                        133,
                        28
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                133,
                                33
                            ],
                            "start": [
                                133,
                                28
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    133,
                    34
                ],
                "name": "_hoveredScrollbar",
                "rawdesc": "Internal: currently hovered scrollbar info",
                "start": [
                    133,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: LayoutEngine instance for layout calculations",
                "extends": {
                    "finish": [
                        109,
                        36
                    ],
                    "start": [
                        109,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                109,
                                36
                            ],
                            "start": [
                                109,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "LayoutEngine"
                        }
                    ],
                    "view": "LayoutEngine"
                },
                "file": "modules/Element.lua",
                "finish": [
                    109,
                    36
                ],
                "name": "_layoutEngine",
                "rawdesc": "Internal: LayoutEngine instance for layout calculations",
                "start": [
                    109,
                    10
                ],
                "type": "doc.field",
                "view": "LayoutEngine",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: split lines for multi-line text",
                "extends": {
                    "finish": [
                        96,
                        23
                    ],
                    "start": [
                        96,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                96,
                                22
                            ],
                            "start": [
                                96,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    96,
                    23
                ],
                "name": "_lines",
                "rawdesc": "Internal: split lines for multi-line text",
                "start": [
                    96,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached loaded image",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        105,
                        34
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        105,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                105,
                                33
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                105,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(love.Image)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    105,
                    34
                ],
                "name": "_loadedImage",
                "rawdesc": "Internal: cached loaded image",
                "start": [
                    105,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: maximum horizontal scroll",
                "extends": {
                    "finish": [
                        128,
                        29
                    ],
                    "start": [
                        128,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                128,
                                28
                            ],
                            "start": [
                                128,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    128,
                    29
                ],
                "name": "_maxScrollX",
                "rawdesc": "Internal: maximum horizontal scroll",
                "start": [
                    128,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: maximum vertical scroll",
                "extends": {
                    "finish": [
                        129,
                        29
                    ],
                    "start": [
                        129,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                129,
                                28
                            ],
                            "start": [
                                129,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    129,
                    29
                ],
                "name": "_maxScrollY",
                "rawdesc": "Internal: maximum vertical scroll",
                "start": [
                    129,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: mouse down position for drag tracking",
                "extends": {
                    "finish": [
                        137,
                        36
                    ],
                    "start": [
                        137,
                        29
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                137,
                                35
                            ],
                            "start": [
                                137,
                                29
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    137,
                    36
                ],
                "name": "_mouseDownPosition",
                "rawdesc": "Internal: mouse down position for drag tracking",
                "start": [
                    137,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Original positioning value set by user",
                "extends": {
                    "finish": [
                        50,
                        43
                    ],
                    "start": [
                        50,
                        31
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                50,
                                42
                            ],
                            "start": [
                                50,
                                31
                            ],
                            "type": "doc.type.name",
                            "view": "Positioning"
                        }
                    ],
                    "view": "Positioning?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    50,
                    43
                ],
                "name": "_originalPositioning",
                "rawdesc": "Original positioning value set by user",
                "start": [
                    50,
                    10
                ],
                "type": "doc.field",
                "view": "Positioning?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: whether content overflows horizontally",
                "extends": {
                    "finish": [
                        122,
                        29
                    ],
                    "start": [
                        122,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                122,
                                28
                            ],
                            "start": [
                                122,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    122,
                    29
                ],
                "name": "_overflowX",
                "rawdesc": "Internal: whether content overflows horizontally",
                "start": [
                    122,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: whether content overflows vertically",
                "extends": {
                    "finish": [
                        123,
                        29
                    ],
                    "start": [
                        123,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                123,
                                28
                            ],
                            "start": [
                                123,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    123,
                    29
                ],
                "name": "_overflowY",
                "rawdesc": "Internal: whether content overflows vertically",
                "start": [
                    123,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: button press state tracking",
                "extends": {
                    "finish": [
                        136,
                        25
                    ],
                    "start": [
                        136,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                136,
                                24
                            ],
                            "start": [
                                136,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    136,
                    25
                ],
                "name": "_pressed",
                "rawdesc": "Internal: button press state tracking",
                "start": [
                    136,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: Renderer instance for visual rendering",
                "extends": {
                    "finish": [
                        108,
                        28
                    ],
                    "start": [
                        108,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                108,
                                28
                            ],
                            "start": [
                                108,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "Renderer"
                        }
                    ],
                    "view": "Renderer"
                },
                "file": "modules/Element.lua",
                "finish": [
                    108,
                    28
                ],
                "name": "_renderer",
                "rawdesc": "Internal: Renderer instance for visual rendering",
                "start": [
                    108,
                    10
                ],
                "type": "doc.field",
                "view": "Renderer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: ScrollManager instance for scroll handling",
                "extends": {
                    "finish": [
                        110,
                        39
                    ],
                    "start": [
                        110,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                110,
                                38
                            ],
                            "start": [
                                110,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "ScrollManager"
                        }
                    ],
                    "view": "ScrollManager?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    110,
                    39
                ],
                "name": "_scrollManager",
                "rawdesc": "Internal: ScrollManager instance for scroll handling",
                "start": [
                    110,
                    10
                ],
                "type": "doc.field",
                "view": "ScrollManager?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: horizontal scroll position",
                "extends": {
                    "finish": [
                        126,
                        26
                    ],
                    "start": [
                        126,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                126,
                                25
                            ],
                            "start": [
                                126,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    126,
                    26
                ],
                "name": "_scrollX",
                "rawdesc": "Internal: horizontal scroll position",
                "start": [
                    126,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: vertical scroll position",
                "extends": {
                    "finish": [
                        127,
                        26
                    ],
                    "start": [
                        127,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                127,
                                25
                            ],
                            "start": [
                                127,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    127,
                    26
                ],
                "name": "_scrollY",
                "rawdesc": "Internal: vertical scroll position",
                "start": [
                    127,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: scrollbar drag offset",
                "extends": {
                    "finish": [
                        134,
                        38
                    ],
                    "start": [
                        134,
                        31
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                134,
                                37
                            ],
                            "start": [
                                134,
                                31
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    134,
                    38
                ],
                "name": "_scrollbarDragOffset",
                "rawdesc": "Internal: scrollbar drag offset",
                "start": [
                    134,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: scrollbar dragging state",
                "extends": {
                    "finish": [
                        132,
                        37
                    ],
                    "start": [
                        132,
                        29
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                132,
                                36
                            ],
                            "start": [
                                132,
                                29
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    132,
                    37
                ],
                "name": "_scrollbarDragging",
                "rawdesc": "Internal: scrollbar dragging state",
                "start": [
                    132,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: horizontal scrollbar hover state",
                "extends": {
                    "finish": [
                        131,
                        46
                    ],
                    "start": [
                        131,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                131,
                                45
                            ],
                            "start": [
                                131,
                                38
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    131,
                    46
                ],
                "name": "_scrollbarHoveredHorizontal",
                "rawdesc": "Internal: horizontal scrollbar hover state",
                "start": [
                    131,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: vertical scrollbar hover state",
                "extends": {
                    "finish": [
                        130,
                        44
                    ],
                    "start": [
                        130,
                        36
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                130,
                                43
                            ],
                            "start": [
                                130,
                                36
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    130,
                    44
                ],
                "name": "_scrollbarHoveredVertical",
                "rawdesc": "Internal: vertical scrollbar hover state",
                "start": [
                    130,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: scrollbar press handled flag",
                "extends": {
                    "finish": [
                        135,
                        41
                    ],
                    "start": [
                        135,
                        33
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                135,
                                40
                            ],
                            "start": [
                                135,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    135,
                    41
                ],
                "name": "_scrollbarPressHandled",
                "rawdesc": "Internal: scrollbar press handled flag",
                "start": [
                    135,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: selection anchor point",
                "extends": {
                    "finish": [
                        93,
                        34
                    ],
                    "start": [
                        93,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                93,
                                33
                            ],
                            "start": [
                                93,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    93,
                    34
                ],
                "name": "_selectionAnchor",
                "rawdesc": "Internal: selection anchor point",
                "start": [
                    93,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: selection end position",
                "extends": {
                    "finish": [
                        92,
                        31
                    ],
                    "start": [
                        92,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                92,
                                30
                            ],
                            "start": [
                                92,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    92,
                    31
                ],
                "name": "_selectionEnd",
                "rawdesc": "Internal: selection end position",
                "start": [
                    92,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: selection start position",
                "extends": {
                    "finish": [
                        91,
                        33
                    ],
                    "start": [
                        91,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                91,
                                32
                            ],
                            "start": [
                                91,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    91,
                    33
                ],
                "name": "_selectionStart",
                "rawdesc": "Internal: selection start position",
                "start": [
                    91,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "State manager ID for this element",
                "extends": {
                    "finish": [
                        59,
                        26
                    ],
                    "start": [
                        59,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                59,
                                25
                            ],
                            "start": [
                                59,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    59,
                    26
                ],
                "name": "_stateId",
                "rawdesc": "State manager ID for this element",
                "start": [
                    59,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Sync ScrollManager state to Element properties for backward compatibility\n This ensures Renderer and StateManager can access scroll state from Element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1348,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1348,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Sync ScrollManager state to Element properties for backward compatibility\n This ensures Renderer and StateManager can access scroll state from Element",
                    "finish": [
                        1367,
                        3
                    ],
                    "rawdesc": " Sync ScrollManager state to Element properties for backward compatibility\n This ensures Renderer and StateManager can access scroll state from Element",
                    "start": [
                        1348,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_syncScrollManagerState()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1348,
                    40
                ],
                "name": "_syncScrollManagerState",
                "rawdesc": " Sync ScrollManager state to Element properties for backward compatibility\n This ensures Renderer and StateManager can access scroll state from Element",
                "start": [
                    1348,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: text buffer for editable elements",
                "extends": {
                    "finish": [
                        95,
                        29
                    ],
                    "start": [
                        95,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                95,
                                28
                            ],
                            "start": [
                                95,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    95,
                    29
                ],
                "name": "_textBuffer",
                "rawdesc": "Internal: text buffer for editable elements",
                "start": [
                    95,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: flag to recalculate lines/wrapping",
                "extends": {
                    "finish": [
                        98,
                        29
                    ],
                    "start": [
                        98,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                98,
                                28
                            ],
                            "start": [
                                98,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    98,
                    29
                ],
                "name": "_textDirty",
                "rawdesc": "Internal: flag to recalculate lines/wrapping",
                "start": [
                    98,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: whether text drag occurred",
                "extends": {
                    "finish": [
                        138,
                        36
                    ],
                    "start": [
                        138,
                        28
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                138,
                                35
                            ],
                            "start": [
                                138,
                                28
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    138,
                    36
                ],
                "name": "_textDragOccurred",
                "rawdesc": "Internal: whether text drag occurred",
                "start": [
                    138,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: TextEditor instance for editable elements",
                "extends": {
                    "finish": [
                        99,
                        33
                    ],
                    "start": [
                        99,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                99,
                                32
                            ],
                            "start": [
                                99,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "TextEditor"
                        }
                    ],
                    "view": "TextEditor?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    99,
                    33
                ],
                "name": "_textEditor",
                "rawdesc": "Internal: TextEditor instance for editable elements",
                "start": [
                    99,
                    10
                ],
                "type": "doc.field",
                "view": "TextEditor?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: theme manager instance",
                "extends": {
                    "finish": [
                        58,
                        36
                    ],
                    "start": [
                        58,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                58,
                                36
                            ],
                            "start": [
                                58,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "ThemeManager"
                        }
                    ],
                    "view": "ThemeManager"
                },
                "file": "modules/Element.lua",
                "finish": [
                    58,
                    36
                ],
                "name": "_themeManager",
                "rawdesc": "Internal: theme manager instance",
                "start": [
                    58,
                    10
                ],
                "type": "doc.field",
                "view": "ThemeManager",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Current theme state (normal, hover, pressed, active, disabled)",
                "extends": {
                    "finish": [
                        57,
                        29
                    ],
                    "start": [
                        57,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                57,
                                28
                            ],
                            "start": [
                                57,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    57,
                    29
                ],
                "name": "_themeState",
                "rawdesc": "Current theme state (normal, hover, pressed, active, disabled)",
                "start": [
                    57,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Wrap a single line of text\n\n@*param* `line` — Line to wrap\n\n@*param* `maxWidth` — Maximum width in pixels\n\n@*return* — Array of wrapped line parts",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2570,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2570,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Line to wrap",
                            "finish": [
                                2570,
                                31
                            ],
                            "name": "line",
                            "rawdesc": "Line to wrap",
                            "start": [
                                2570,
                                27
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Maximum width in pixels",
                            "finish": [
                                2570,
                                41
                            ],
                            "name": "maxWidth",
                            "rawdesc": "Maximum width in pixels",
                            "start": [
                                2570,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Wrap a single line of text\n\n@*param* `line` — Line to wrap\n\n@*param* `maxWidth` — Maximum width in pixels\n\n@*return* — Array of wrapped line parts",
                    "finish": [
                        2572,
                        3
                    ],
                    "rawdesc": " Wrap a single line of text",
                    "returns": [
                        {
                            "desc": "Array of wrapped line parts",
                            "rawdesc": "Array of wrapped line parts",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        2570,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:_wrapLine(line: string, maxWidth: number)\n  -> table"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2570,
                    26
                ],
                "name": "_wrapLine",
                "rawdesc": " Wrap a single line of text",
                "start": [
                    2570,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: wrapped line data",
                "extends": {
                    "finish": [
                        97,
                        30
                    ],
                    "start": [
                        97,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                97,
                                29
                            ],
                            "start": [
                                97,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    97,
                    30
                ],
                "name": "_wrappedLines",
                "rawdesc": "Internal: wrapped line data",
                "start": [
                    97,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element is active/focused (for inputs, default: false)",
                "extends": {
                    "finish": [
                        61,
                        25
                    ],
                    "start": [
                        61,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                61,
                                24
                            ],
                            "start": [
                                61,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    61,
                    25
                ],
                "name": "active",
                "rawdesc": "Whether the element is active/focused (for inputs, default: false)",
                "start": [
                    61,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Add child to element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1624,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1624,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1624,
                                31
                            ],
                            "name": "child",
                            "start": [
                                1624,
                                26
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "desc": " Add child to element",
                    "finish": [
                        1692,
                        3
                    ],
                    "rawdesc": " Add child to element",
                    "start": [
                        1624,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:addChild(child: Element)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1624,
                    25
                ],
                "name": "addChild",
                "rawdesc": " Add child to element",
                "start": [
                    1624,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of lines in multi-line flex containers (default: STRETCH)",
                "extends": {
                    "finish": [
                        30,
                        35
                    ],
                    "start": [
                        30,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                30,
                                35
                            ],
                            "start": [
                                30,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "AlignContent"
                        }
                    ],
                    "view": "AlignContent"
                },
                "file": "modules/Element.lua",
                "finish": [
                    30,
                    35
                ],
                "name": "alignContent",
                "rawdesc": "Alignment of lines in multi-line flex containers (default: STRETCH)",
                "start": [
                    30,
                    10
                ],
                "type": "doc.field",
                "view": "AlignContent",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along cross axis (default: STRETCH)",
                "extends": {
                    "finish": [
                        29,
                        31
                    ],
                    "start": [
                        29,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                29,
                                31
                            ],
                            "start": [
                                29,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "AlignItems"
                        }
                    ],
                    "view": "AlignItems"
                },
                "file": "modules/Element.lua",
                "finish": [
                    29,
                    31
                ],
                "name": "alignItems",
                "rawdesc": "Alignment of items along cross axis (default: STRETCH)",
                "start": [
                    29,
                    10
                ],
                "type": "doc.field",
                "view": "AlignItems",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of the item itself along cross axis (default: AUTO)",
                "extends": {
                    "finish": [
                        33,
                        29
                    ],
                    "start": [
                        33,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                33,
                                29
                            ],
                            "start": [
                                33,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "AlignSelf"
                        }
                    ],
                    "view": "AlignSelf"
                },
                "file": "modules/Element.lua",
                "finish": [
                    33,
                    29
                ],
                "name": "alignSelf",
                "rawdesc": "Alignment of the item itself along cross axis (default: AUTO)",
                "start": [
                    33,
                    10
                ],
                "type": "doc.field",
                "view": "AlignSelf",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Animation instance for this element",
                "extends": {
                    "finish": [
                        139,
                        26
                    ],
                    "start": [
                        139,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                139,
                                25
                            ],
                            "start": [
                                139,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    139,
                    26
                ],
                "name": "animation",
                "rawdesc": "Animation instance for this element",
                "start": [
                    139,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Apply positioning offsets (top, right, bottom, left) to an element\n @param element The element to apply offsets to",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1764,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1764,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1764,
                                48
                            ],
                            "name": "element",
                            "start": [
                                1764,
                                41
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": " Apply positioning offsets (top, right, bottom, left) to an element\n @param element The element to apply offsets to",
                    "finish": [
                        1767,
                        3
                    ],
                    "rawdesc": " Apply positioning offsets (top, right, bottom, left) to an element\n @param element The element to apply offsets to",
                    "start": [
                        1764,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:applyPositioningOffsets(element: any)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1764,
                    40
                ],
                "name": "applyPositioningOffsets",
                "rawdesc": " Apply positioning offsets (top, right, bottom, left) to an element\n @param element The element to apply offsets to",
                "start": [
                    1764,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether element auto-grows with text (default: false)",
                "extends": {
                    "finish": [
                        79,
                        26
                    ],
                    "start": [
                        79,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                79,
                                26
                            ],
                            "start": [
                                79,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    79,
                    26
                ],
                "name": "autoGrow",
                "rawdesc": "Whether element auto-grows with text (default: false)",
                "start": [
                    79,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether text should auto-scale with window size (default: true)",
                "extends": {
                    "finish": [
                        38,
                        31
                    ],
                    "start": [
                        38,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                38,
                                31
                            ],
                            "start": [
                                38,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    38,
                    31
                ],
                "name": "autoScaleText",
                "rawdesc": "Whether text should auto-scale with window size (default: true)",
                "start": [
                    38,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element should automatically size to fit its children",
                "extends": {
                    "finish": [
                        2,
                        52
                    ],
                    "start": [
                        2,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        2,
                                        35
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            2,
                                            27
                                        ],
                                        "start": [
                                            2,
                                            22
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        2,
                                        22
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        2,
                                        51
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            2,
                                            43
                                        ],
                                        "start": [
                                            2,
                                            37
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        2,
                                        37
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                }
                            ],
                            "finish": [
                                2,
                                52
                            ],
                            "start": [
                                2,
                                21
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: boolean, height: boolean }"
                        }
                    ],
                    "view": "{ width: boolean, height: boolean }"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2,
                    52
                ],
                "name": "autosizing",
                "rawdesc": "Whether the element should automatically size to fit its children",
                "start": [
                    2,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: boolean, height: boolean }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Blur content behind the element (intensity: 0-100, quality: 1-10)",
                "extends": {
                    "finish": [
                        67,
                        58
                    ],
                    "start": [
                        67,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        67,
                                        40
                                    ],
                                    "name": {
                                        "[1]": "intensity",
                                        "finish": [
                                            67,
                                            33
                                        ],
                                        "start": [
                                            67,
                                            24
                                        ],
                                        "type": "doc.field.name",
                                        "view": "intensity"
                                    },
                                    "start": [
                                        67,
                                        24
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        67,
                                        56
                                    ],
                                    "name": {
                                        "[1]": "quality",
                                        "finish": [
                                            67,
                                            49
                                        ],
                                        "start": [
                                            67,
                                            42
                                        ],
                                        "type": "doc.field.name",
                                        "view": "quality"
                                    },
                                    "start": [
                                        67,
                                        42
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                67,
                                57
                            ],
                            "start": [
                                67,
                                23
                            ],
                            "type": "doc.type.table",
                            "view": "{ intensity: number, quality: number }"
                        }
                    ],
                    "view": "{ intensity: number, quality: number }?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    67,
                    58
                ],
                "name": "backdropBlur",
                "rawdesc": "Blur content behind the element (intensity: 0-100, quality: 1-10)",
                "start": [
                    67,
                    10
                ],
                "type": "doc.field",
                "view": "{ intensity: number, quality: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Background color of the element",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        17,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        17,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                17,
                                31
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                17,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/Element.lua",
                "finish": [
                    17,
                    31
                ],
                "name": "backgroundColor",
                "rawdesc": "Background color of the element",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Remove focus from this element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2493,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2493,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Remove focus from this element",
                    "finish": [
                        2497,
                        3
                    ],
                    "rawdesc": " Remove focus from this element",
                    "start": [
                        2493,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:blur()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2493,
                    21
                ],
                "name": "blur",
                "rawdesc": " Remove focus from this element",
                "start": [
                    2493,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Border configuration for the element",
                "extends": {
                    "finish": [
                        14,
                        23
                    ],
                    "start": [
                        14,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                23
                            ],
                            "start": [
                                14,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "Border"
                        }
                    ],
                    "view": "Border"
                },
                "file": "modules/Element.lua",
                "finish": [
                    14,
                    23
                ],
                "name": "border",
                "rawdesc": "Border configuration for the element",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "Border",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Color of the border",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        16,
                        27
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        16,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                16,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                16,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/Element.lua",
                "finish": [
                    16,
                    27
                ],
                "name": "borderColor",
                "rawdesc": "Color of the border",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from bottom edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        10,
                        24
                    ],
                    "start": [
                        10,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                10,
                                23
                            ],
                            "start": [
                                10,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    10,
                    24
                ],
                "name": "bottom",
                "rawdesc": "Offset from bottom edge (CSS-style positioning)",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Calculate auto height based on children",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2310,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2310,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Calculate auto height based on children",
                    "finish": [
                        2312,
                        3
                    ],
                    "rawdesc": " Calculate auto height based on children",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2310,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:calculateAutoHeight()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2310,
                    36
                ],
                "name": "calculateAutoHeight",
                "rawdesc": " Calculate auto height based on children",
                "start": [
                    2310,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2305,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2305,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "finish": [
                        2307,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2305,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:calculateAutoWidth()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2305,
                    35
                ],
                "name": "calculateAutoWidth",
                "start": [
                    2305,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2281,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2281,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "finish": [
                        2303,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2281,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:calculateTextHeight()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2281,
                    36
                ],
                "name": "calculateTextHeight",
                "start": [
                    2281,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Calculate text width for button",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2270,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2270,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Calculate text width for button",
                    "finish": [
                        2278,
                        3
                    ],
                    "rawdesc": " Calculate text width for button",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2270,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:calculateTextWidth()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2270,
                    35
                ],
                "name": "calculateTextWidth",
                "rawdesc": " Calculate text width for button",
                "start": [
                    2270,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Children of this element",
                "extends": {
                    "finish": [
                        12,
                        42
                    ],
                    "start": [
                        12,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                42
                            ],
                            "start": [
                                12,
                                19
                            ],
                            "type": "doc.type.sign",
                            "view": "table<integer, Element>"
                        }
                    ],
                    "view": "table<integer, Element>"
                },
                "file": "modules/Element.lua",
                "finish": [
                    12,
                    42
                ],
                "name": "children",
                "rawdesc": "Children of this element",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "table<integer, Element>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Remove all children from this element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1727,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1727,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Remove all children from this element",
                    "finish": [
                        1754,
                        3
                    ],
                    "rawdesc": " Remove all children from this element",
                    "start": [
                        1727,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:clearChildren()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1727,
                    30
                ],
                "name": "clearChildren",
                "rawdesc": " Remove all children from this element",
                "start": [
                    1727,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2445,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2445,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Clear selection",
                    "finish": [
                        2449,
                        3
                    ],
                    "rawdesc": " Clear selection",
                    "start": [
                        2445,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:clearSelection()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2445,
                    31
                ],
                "name": "clearSelection",
                "rawdesc": " Clear selection",
                "start": [
                    2445,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid columns",
                "extends": {
                    "finish": [
                        53,
                        34
                    ],
                    "start": [
                        53,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                53,
                                26
                            ],
                            "start": [
                                53,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                53,
                                33
                            ],
                            "start": [
                                53,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    53,
                    34
                ],
                "name": "columnGap",
                "rawdesc": "Gap between grid columns",
                "start": [
                    53,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if point is inside element bounds",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1329,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1329,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1329,
                                27
                            ],
                            "name": "x",
                            "start": [
                                1329,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1329,
                                30
                            ],
                            "name": "y",
                            "start": [
                                1329,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Check if point is inside element bounds",
                    "finish": [
                        1332,
                        3
                    ],
                    "rawdesc": " Check if point is inside element bounds",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1329,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:contains(x: number, y: number)\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1329,
                    25
                ],
                "name": "contains",
                "rawdesc": " Check if point is inside element bounds",
                "start": [
                    1329,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Multiplier for auto-sized content dimensions",
                "extends": {
                    "finish": [
                        63,
                        70
                    ],
                    "start": [
                        63,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        63,
                                        52
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            63,
                                            44
                                        ],
                                        "start": [
                                            63,
                                            39
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        63,
                                        39
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        63,
                                        68
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            63,
                                            60
                                        ],
                                        "start": [
                                            63,
                                            54
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        63,
                                        54
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                63,
                                69
                            ],
                            "start": [
                                63,
                                38
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number?, height: number? }"
                        }
                    ],
                    "view": "{ width: number?, height: number? }?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    63,
                    70
                ],
                "name": "contentAutoSizingMultiplier",
                "rawdesc": "Multiplier for auto-sized content dimensions",
                "start": [
                    63,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number?, height: number? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Blur the element's content including children (intensity: 0-100, quality: 1-10)",
                "extends": {
                    "finish": [
                        66,
                        57
                    ],
                    "start": [
                        66,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        66,
                                        39
                                    ],
                                    "name": {
                                        "[1]": "intensity",
                                        "finish": [
                                            66,
                                            32
                                        ],
                                        "start": [
                                            66,
                                            23
                                        ],
                                        "type": "doc.field.name",
                                        "view": "intensity"
                                    },
                                    "start": [
                                        66,
                                        23
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        66,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "quality",
                                        "finish": [
                                            66,
                                            48
                                        ],
                                        "start": [
                                            66,
                                            41
                                        ],
                                        "type": "doc.field.name",
                                        "view": "quality"
                                    },
                                    "start": [
                                        66,
                                        41
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                66,
                                56
                            ],
                            "start": [
                                66,
                                22
                            ],
                            "type": "doc.type.table",
                            "view": "{ intensity: number, quality: number }"
                        }
                    ],
                    "view": "{ intensity: number, quality: number }?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    66,
                    57
                ],
                "name": "contentBlur",
                "rawdesc": "Blur the element's content including children (intensity: 0-100, quality: 1-10)",
                "start": [
                    66,
                    10
                ],
                "type": "doc.field",
                "view": "{ intensity: number, quality: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Corner radius for rounded corners (default: 0)",
                "extends": {
                    "finish": [
                        18,
                        107
                    ],
                    "start": [
                        18,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                29
                            ],
                            "start": [
                                18,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "fields": [
                                {
                                    "finish": [
                                        18,
                                        46
                                    ],
                                    "name": {
                                        "[1]": "topLeft",
                                        "finish": [
                                            18,
                                            38
                                        ],
                                        "start": [
                                            18,
                                            31
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topLeft"
                                    },
                                    "start": [
                                        18,
                                        31
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        18,
                                        64
                                    ],
                                    "name": {
                                        "[1]": "topRight",
                                        "finish": [
                                            18,
                                            56
                                        ],
                                        "start": [
                                            18,
                                            48
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topRight"
                                    },
                                    "start": [
                                        18,
                                        48
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        18,
                                        84
                                    ],
                                    "name": {
                                        "[1]": "bottomLeft",
                                        "finish": [
                                            18,
                                            76
                                        ],
                                        "start": [
                                            18,
                                            66
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomLeft"
                                    },
                                    "start": [
                                        18,
                                        66
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        18,
                                        105
                                    ],
                                    "name": {
                                        "[1]": "bottomRight",
                                        "finish": [
                                            18,
                                            97
                                        ],
                                        "start": [
                                            18,
                                            86
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomRight"
                                    },
                                    "start": [
                                        18,
                                        86
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                18,
                                106
                            ],
                            "start": [
                                18,
                                30
                            ],
                            "type": "doc.type.table",
                            "view": "{ topLeft: number?, topRight: number?, bottomLeft: number?, bottomRight: number? }"
                        }
                    ],
                    "view": "(number|{ topLeft: number?, topRight: number?, bottomLeft: number?, bottomRight: number? })?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    18,
                    107
                ],
                "name": "cornerRadius",
                "rawdesc": "Corner radius for rounded corners (default: 0)",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "(number|{ topLeft: number?, topRight: number?, bottomLeft: number?, bottomRight: number? })?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Cursor blink rate in seconds (default: 0.5)",
                "extends": {
                    "finish": [
                        83,
                        32
                    ],
                    "start": [
                        83,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                83,
                                32
                            ],
                            "start": [
                                83,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    83,
                    32
                ],
                "name": "cursorBlinkRate",
                "rawdesc": "Cursor blink rate in seconds (default: 0.5)",
                "start": [
                    83,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Cursor color (default: nil, uses textColor)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        81,
                        28
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        81,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                81,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                81,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    81,
                    28
                ],
                "name": "cursorColor",
                "rawdesc": "Cursor color (default: nil, uses textColor)",
                "start": [
                    81,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Delete selected text\n\n@*return* — True if text was deleted",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2469,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2469,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Delete selected text\n\n@*return* — True if text was deleted",
                    "finish": [
                        2479,
                        3
                    ],
                    "rawdesc": " Delete selected text",
                    "returns": [
                        {
                            "desc": "True if text was deleted",
                            "rawdesc": "True if text was deleted",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2469,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:deleteSelection()\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2469,
                    32
                ],
                "name": "deleteSelection",
                "rawdesc": " Delete selected text",
                "start": [
                    2469,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2546,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2546,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Start position (inclusive)",
                            "finish": [
                                2546,
                                36
                            ],
                            "name": "startPos",
                            "rawdesc": "Start position (inclusive)",
                            "start": [
                                2546,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "End position (inclusive)",
                            "finish": [
                                2546,
                                44
                            ],
                            "name": "endPos",
                            "rawdesc": "End position (inclusive)",
                            "start": [
                                2546,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                    "finish": [
                        2552,
                        3
                    ],
                    "start": [
                        2546,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:deleteText(startPos: number, endPos: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2546,
                    27
                ],
                "name": "deleteText",
                "start": [
                    2546,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Destroy element and its children",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1775,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1775,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Destroy element and its children",
                    "finish": [
                        1812,
                        3
                    ],
                    "rawdesc": " Destroy element and its children",
                    "start": [
                        1775,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:destroy()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1775,
                    24
                ],
                "name": "destroy",
                "rawdesc": " Destroy element and its children",
                "start": [
                    1775,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to disable the pressed state highlight overlay (default: false)",
                "extends": {
                    "finish": [
                        62,
                        35
                    ],
                    "start": [
                        62,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                62,
                                34
                            ],
                            "start": [
                                62,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    62,
                    35
                ],
                "name": "disableHighlight",
                "rawdesc": "Whether to disable the pressed state highlight overlay (default: false)",
                "start": [
                    62,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element is disabled (default: false)",
                "extends": {
                    "finish": [
                        60,
                        27
                    ],
                    "start": [
                        60,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                60,
                                26
                            ],
                            "start": [
                                60,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    60,
                    27
                ],
                "name": "disabled",
                "rawdesc": "Whether the element is disabled (default: false)",
                "start": [
                    60,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw element and its children",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1815,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1815,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1815,
                                36
                            ],
                            "name": "backdropCanvas",
                            "start": [
                                1815,
                                22
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": " Draw element and its children",
                    "finish": [
                        1972,
                        3
                    ],
                    "rawdesc": " Draw element and its children",
                    "start": [
                        1815,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:draw(backdropCanvas: any)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1815,
                    21
                ],
                "name": "draw",
                "rawdesc": " Draw element and its children",
                "start": [
                    1815,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element is editable (default: false)",
                "extends": {
                    "finish": [
                        69,
                        26
                    ],
                    "start": [
                        69,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                69,
                                26
                            ],
                            "start": [
                                69,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    69,
                    26
                ],
                "name": "editable",
                "rawdesc": "Whether the element is editable (default: false)",
                "start": [
                    69,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Direction of flex layout (default: HORIZONTAL)",
                "extends": {
                    "finish": [
                        27,
                        37
                    ],
                    "start": [
                        27,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                27,
                                37
                            ],
                            "start": [
                                27,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "FlexDirection"
                        }
                    ],
                    "view": "FlexDirection"
                },
                "file": "modules/Element.lua",
                "finish": [
                    27,
                    37
                ],
                "name": "flexDirection",
                "rawdesc": "Direction of flex layout (default: HORIZONTAL)",
                "start": [
                    27,
                    10
                ],
                "type": "doc.field",
                "view": "FlexDirection",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether children wrap to multiple lines (default: NOWRAP)",
                "extends": {
                    "finish": [
                        31,
                        27
                    ],
                    "start": [
                        31,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                31,
                                27
                            ],
                            "start": [
                                31,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "FlexWrap"
                        }
                    ],
                    "view": "FlexWrap"
                },
                "file": "modules/Element.lua",
                "finish": [
                    31,
                    27
                ],
                "name": "flexWrap",
                "rawdesc": "Whether children wrap to multiple lines (default: NOWRAP)",
                "start": [
                    31,
                    10
                ],
                "type": "doc.field",
                "view": "FlexWrap",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Focus this element for keyboard input",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2486,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2486,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Focus this element for keyboard input",
                    "finish": [
                        2490,
                        3
                    ],
                    "rawdesc": " Focus this element for keyboard input",
                    "start": [
                        2486,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:focus()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2486,
                    22
                ],
                "name": "focus",
                "rawdesc": " Focus this element for keyboard input",
                "start": [
                    2486,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Font family name from theme or path to font file",
                "extends": {
                    "finish": [
                        37,
                        28
                    ],
                    "start": [
                        37,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                37,
                                27
                            ],
                            "start": [
                                37,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    37,
                    28
                ],
                "name": "fontFamily",
                "rawdesc": "Font family name from theme or path to font file",
                "start": [
                    37,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Space between children elements (default: 10)",
                "extends": {
                    "finish": [
                        23,
                        27
                    ],
                    "start": [
                        23,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                23,
                                20
                            ],
                            "start": [
                                23,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                23,
                                27
                            ],
                            "start": [
                                23,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    23,
                    27
                ],
                "name": "gap",
                "rawdesc": "Space between children elements (default: 10)",
                "start": [
                    23,
                    10
                ],
                "type": "doc.field",
                "view": "string|number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get available content height for children (accounting for 9-patch content padding)\n This is the height that children should use when calculating percentage heights",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1601,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1601,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get available content height for children (accounting for 9-patch content padding)\n This is the height that children should use when calculating percentage heights",
                    "finish": [
                        1620,
                        3
                    ],
                    "rawdesc": " Get available content height for children (accounting for 9-patch content padding)\n This is the height that children should use when calculating percentage heights",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1601,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getAvailableContentHeight()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1601,
                    42
                ],
                "name": "getAvailableContentHeight",
                "rawdesc": " Get available content height for children (accounting for 9-patch content padding)\n This is the height that children should use when calculating percentage heights",
                "start": [
                    1601,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get available content width for children (accounting for 9-patch content padding)\n This is the width that children should use when calculating percentage widths",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1577,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1577,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get available content width for children (accounting for 9-patch content padding)\n This is the width that children should use when calculating percentage widths",
                    "finish": [
                        1596,
                        3
                    ],
                    "rawdesc": " Get available content width for children (accounting for 9-patch content padding)\n This is the width that children should use when calculating percentage widths",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1577,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getAvailableContentWidth()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1577,
                    41
                ],
                "name": "getAvailableContentWidth",
                "rawdesc": " Get available content width for children (accounting for 9-patch content padding)\n This is the width that children should use when calculating percentage widths",
                "start": [
                    1577,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get or create blur instance for this element\n\n@*return* — Blur instance or nil if no blur configured",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1557,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1557,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get or create blur instance for this element\n\n@*return* — Blur instance or nil if no blur configured",
                    "finish": [
                        1572,
                        3
                    ],
                    "rawdesc": " Get or create blur instance for this element",
                    "returns": [
                        {
                            "desc": "Blur instance or nil if no blur configured",
                            "rawdesc": "Blur instance or nil if no blur configured",
                            "type": "function.return",
                            "view": "table?"
                        }
                    ],
                    "start": [
                        1557,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getBlurInstance()\n  -> table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1557,
                    32
                ],
                "name": "getBlurInstance",
                "rawdesc": " Get or create blur instance for this element",
                "start": [
                    1557,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get border-box height (including padding)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1342,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1342,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get border-box height (including padding)",
                    "finish": [
                        1344,
                        3
                    ],
                    "rawdesc": " Get border-box height (including padding)",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1342,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getBorderBoxHeight()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1342,
                    35
                ],
                "name": "getBorderBoxHeight",
                "rawdesc": " Get border-box height (including padding)",
                "start": [
                    1342,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get border-box width (including padding)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1336,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1336,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get border-box width (including padding)",
                    "finish": [
                        1338,
                        3
                    ],
                    "rawdesc": " Get border-box width (including padding)",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1336,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getBorderBoxWidth()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1336,
                    34
                ],
                "name": "getBorderBoxWidth",
                "rawdesc": " Get border-box width (including padding)",
                "start": [
                    1336,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get element bounds (content box)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1321,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1321,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get element bounds (content box)",
                    "finish": [
                        1323,
                        3
                    ],
                    "rawdesc": " Get element bounds (content box)",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "{ x: number, y: number, width: number, height: number }"
                        }
                    ],
                    "start": [
                        1321,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getBounds()\n  -> { x: number, y: number, width: number, height: number }"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1321,
                    26
                ],
                "name": "getBounds",
                "rawdesc": " Get element bounds (content box)",
                "start": [
                    1321,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the number of children this element has",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1758,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1758,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get the number of children this element has",
                    "finish": [
                        1760,
                        3
                    ],
                    "rawdesc": " Get the number of children this element has",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1758,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getChildCount()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1758,
                    30
                ],
                "name": "getChildCount",
                "rawdesc": " Get the number of children this element has",
                "start": [
                    1758,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get content dimensions (including overflow) (delegates to ScrollManager)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1503,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1503,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get content dimensions (including overflow) (delegates to ScrollManager)",
                    "finish": [
                        1508,
                        3
                    ],
                    "rawdesc": " Get content dimensions (including overflow) (delegates to ScrollManager)",
                    "returns": [
                        {
                            "name": "contentWidth",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "contentHeight",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1503,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getContentSize()\n  -> contentWidth: number\n  2. contentHeight: number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1503,
                    31
                ],
                "name": "getContentSize",
                "rawdesc": " Get content dimensions (including overflow) (delegates to ScrollManager)",
                "start": [
                    1503,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get cursor position\n\n@*return* — Character index (0-based)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2356,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2356,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get cursor position\n\n@*return* — Character index (0-based)",
                    "finish": [
                        2361,
                        3
                    ],
                    "rawdesc": " Get cursor position",
                    "returns": [
                        {
                            "desc": "Character index (0-based)",
                            "rawdesc": "Character index (0-based)",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2356,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getCursorPosition()\n  -> number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2356,
                    34
                ],
                "name": "getCursorPosition",
                "rawdesc": " Get cursor position",
                "start": [
                    2356,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get maximum scroll bounds (delegates to ScrollManager)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1476,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1476,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get maximum scroll bounds (delegates to ScrollManager)",
                    "finish": [
                        1481,
                        3
                    ],
                    "rawdesc": " Get maximum scroll bounds (delegates to ScrollManager)",
                    "returns": [
                        {
                            "name": "maxScrollX",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "maxScrollY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1476,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getMaxScroll()\n  -> maxScrollX: number\n  2. maxScrollY: number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1476,
                    29
                ],
                "name": "getMaxScroll",
                "rawdesc": " Get maximum scroll bounds (delegates to ScrollManager)",
                "start": [
                    1476,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the current state's scaled content padding\n Returns the contentPadding for the current theme state, scaled to the element's size\n\n@*return* — {left, top, right, bottom} or nil if no contentPadding",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1549,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1549,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get the current state's scaled content padding\n Returns the contentPadding for the current theme state, scaled to the element's size\n\n@*return* — {left, top, right, bottom} or nil if no contentPadding",
                    "finish": [
                        1553,
                        3
                    ],
                    "rawdesc": " Get the current state's scaled content padding\n Returns the contentPadding for the current theme state, scaled to the element's size",
                    "returns": [
                        {
                            "desc": "{left, top, right, bottom} or nil if no contentPadding",
                            "rawdesc": "{left, top, right, bottom} or nil if no contentPadding",
                            "type": "function.return",
                            "view": "table|nil"
                        }
                    ],
                    "start": [
                        1549,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getScaledContentPadding()\n  -> table|nil"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1549,
                    40
                ],
                "name": "getScaledContentPadding",
                "rawdesc": " Get the current state's scaled content padding\n Returns the contentPadding for the current theme state, scaled to the element's size",
                "start": [
                    1549,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get scroll percentage (0-1) (delegates to ScrollManager)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1485,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1485,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get scroll percentage (0-1) (delegates to ScrollManager)",
                    "finish": [
                        1490,
                        3
                    ],
                    "rawdesc": " Get scroll percentage (0-1) (delegates to ScrollManager)",
                    "returns": [
                        {
                            "name": "percentX",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "percentY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1485,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getScrollPercentage()\n  -> percentX: number\n  2. percentY: number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1485,
                    36
                ],
                "name": "getScrollPercentage",
                "rawdesc": " Get scroll percentage (0-1) (delegates to ScrollManager)",
                "start": [
                    1485,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get current scroll position (delegates to ScrollManager)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1467,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1467,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get current scroll position (delegates to ScrollManager)",
                    "finish": [
                        1472,
                        3
                    ],
                    "rawdesc": " Get current scroll position (delegates to ScrollManager)",
                    "returns": [
                        {
                            "name": "scrollX",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "scrollY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1467,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getScrollPosition()\n  -> scrollX: number\n  2. scrollY: number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1467,
                    34
                ],
                "name": "getScrollPosition",
                "rawdesc": " Get current scroll position (delegates to ScrollManager)",
                "start": [
                    1467,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get selected text\n\n@*return* — Selected text or nil if no selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2460,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2460,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get selected text\n\n@*return* — Selected text or nil if no selection",
                    "finish": [
                        2465,
                        3
                    ],
                    "rawdesc": " Get selected text",
                    "returns": [
                        {
                            "desc": "Selected text or nil if no selection",
                            "rawdesc": "Selected text or nil if no selection",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        2460,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getSelectedText()\n  -> string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2460,
                    32
                ],
                "name": "getSelectedText",
                "rawdesc": " Get selected text",
                "start": [
                    2460,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get selection range\n\n@*return* — Start and end positions, or nil if no selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2428,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2428,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get selection range\n\n@*return* — Start and end positions, or nil if no selection",
                    "finish": [
                        2433,
                        3
                    ],
                    "rawdesc": " Get selection range",
                    "returns": [
                        {
                            "desc": "Start and end positions, or nil if no selection",
                            "rawdesc": "Start and end positions, or nil if no selection",
                            "type": "function.return",
                            "view": "number?"
                        },
                        {
                            "desc": "Start and end positions, or nil if no selection",
                            "rawdesc": "Start and end positions, or nil if no selection",
                            "type": "function.return",
                            "view": "number?"
                        }
                    ],
                    "start": [
                        2428,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getSelection()\n  -> number?\n  2. number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2428,
                    29
                ],
                "name": "getSelection",
                "rawdesc": " Get selection range",
                "start": [
                    2428,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get current text buffer",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2514,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2514,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Get current text buffer",
                    "finish": [
                        2519,
                        3
                    ],
                    "rawdesc": " Get current text buffer",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        2514,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:getText()\n  -> string"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2514,
                    24
                ],
                "name": "getText",
                "rawdesc": " Get current text buffer",
                "start": [
                    2514,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of columns in the grid",
                "extends": {
                    "finish": [
                        52,
                        29
                    ],
                    "start": [
                        52,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                52,
                                28
                            ],
                            "start": [
                                52,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    52,
                    29
                ],
                "name": "gridColumns",
                "rawdesc": "Number of columns in the grid",
                "start": [
                    52,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of rows in the grid",
                "extends": {
                    "finish": [
                        51,
                        26
                    ],
                    "start": [
                        51,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                51,
                                25
                            ],
                            "start": [
                                51,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    51,
                    26
                ],
                "name": "gridRows",
                "rawdesc": "Number of rows in the grid",
                "start": [
                    51,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if element has overflow (delegates to ScrollManager)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1494,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1494,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Check if element has overflow (delegates to ScrollManager)",
                    "finish": [
                        1499,
                        3
                    ],
                    "rawdesc": " Check if element has overflow (delegates to ScrollManager)",
                    "returns": [
                        {
                            "name": "hasOverflowX",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "hasOverflowY",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1494,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:hasOverflow()\n  -> hasOverflowX: boolean\n  2. hasOverflowY: boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1494,
                    28
                ],
                "name": "hasOverflow",
                "rawdesc": " Check if element has overflow (delegates to ScrollManager)",
                "start": [
                    1494,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if there is an active selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2437,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2437,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Check if there is an active selection",
                    "finish": [
                        2442,
                        3
                    ],
                    "rawdesc": " Check if there is an active selection",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2437,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:hasSelection()\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2437,
                    29
                ],
                "name": "hasSelection",
                "rawdesc": " Check if there is an active selection",
                "start": [
                    2437,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Height of the element",
                "extends": {
                    "finish": [
                        7,
                        30
                    ],
                    "start": [
                        7,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                23
                            ],
                            "start": [
                                7,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                7,
                                30
                            ],
                            "start": [
                                7,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    7,
                    30
                ],
                "name": "height",
                "rawdesc": "Height of the element",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "string|number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " same as calling updateOpacity(0)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2333,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2333,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " same as calling updateOpacity(0)",
                    "finish": [
                        2335,
                        3
                    ],
                    "rawdesc": " same as calling updateOpacity(0)",
                    "start": [
                        2333,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:hide()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2333,
                    21
                ],
                "name": "hide",
                "rawdesc": " same as calling updateOpacity(0)",
                "start": [
                    2333,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Hide scrollbars (boolean for both, or table for individual control)",
                "extends": {
                    "finish": [
                        106,
                        72
                    ],
                    "start": [
                        106,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                106,
                                32
                            ],
                            "start": [
                                106,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        },
                        {
                            "fields": [
                                {
                                    "finish": [
                                        106,
                                        50
                                    ],
                                    "name": {
                                        "[1]": "vertical",
                                        "finish": [
                                            106,
                                            42
                                        ],
                                        "start": [
                                            106,
                                            34
                                        ],
                                        "type": "doc.field.name",
                                        "view": "vertical"
                                    },
                                    "start": [
                                        106,
                                        34
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        106,
                                        70
                                    ],
                                    "name": {
                                        "[1]": "horizontal",
                                        "finish": [
                                            106,
                                            62
                                        ],
                                        "start": [
                                            106,
                                            52
                                        ],
                                        "type": "doc.field.name",
                                        "view": "horizontal"
                                    },
                                    "start": [
                                        106,
                                        52
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                }
                            ],
                            "finish": [
                                106,
                                71
                            ],
                            "start": [
                                106,
                                33
                            ],
                            "type": "doc.type.table",
                            "view": "{ vertical: boolean, horizontal: boolean }"
                        }
                    ],
                    "view": "(boolean|{ vertical: boolean, horizontal: boolean })?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    106,
                    72
                ],
                "name": "hideScrollbars",
                "rawdesc": "Hide scrollbars (boolean for both, or table for individual control)",
                "start": [
                    106,
                    10
                ],
                "type": "doc.field",
                "view": "(boolean|{ vertical: boolean, horizontal: boolean })?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        1,
                        19
                    ],
                    "start": [
                        1,
                        13
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                1,
                                19
                            ],
                            "start": [
                                1,
                                13
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1,
                    19
                ],
                "name": "id",
                "start": [
                    1,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image object to display",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        101,
                        27
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        101,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                101,
                                26
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                101,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(love.Image)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    101,
                    27
                ],
                "name": "image",
                "rawdesc": "Image object to display",
                "start": [
                    101,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image opacity 0-1 (default: 1, combines with element opacity)",
                "extends": {
                    "finish": [
                        104,
                        30
                    ],
                    "start": [
                        104,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                104,
                                29
                            ],
                            "start": [
                                104,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    104,
                    30
                ],
                "name": "imageOpacity",
                "rawdesc": "Image opacity 0-1 (default: 1, combines with element opacity)",
                "start": [
                    104,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Path to image file (auto-loads via ImageCache)",
                "extends": {
                    "finish": [
                        100,
                        27
                    ],
                    "start": [
                        100,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                100,
                                26
                            ],
                            "start": [
                                100,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    100,
                    27
                ],
                "name": "imagePath",
                "rawdesc": "Path to image file (auto-loads via ImageCache)",
                "start": [
                    100,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Input type for validation (default: \"text\")",
                "extends": {
                    "finish": [
                        76,
                        49
                    ],
                    "start": [
                        76,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                76,
                                26
                            ],
                            "start": [
                                76,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"text\""
                        },
                        {
                            "finish": [
                                76,
                                35
                            ],
                            "start": [
                                76,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"number\""
                        },
                        {
                            "finish": [
                                76,
                                43
                            ],
                            "start": [
                                76,
                                36
                            ],
                            "type": "doc.type.string",
                            "view": "\"email\""
                        },
                        {
                            "finish": [
                                76,
                                49
                            ],
                            "start": [
                                76,
                                44
                            ],
                            "type": "doc.type.string",
                            "view": "\"url\""
                        }
                    ],
                    "view": "\"email\"|\"number\"|\"text\"|\"url\""
                },
                "file": "modules/Element.lua",
                "finish": [
                    76,
                    49
                ],
                "name": "inputType",
                "rawdesc": "Input type for validation (default: \"text\")",
                "start": [
                    76,
                    10
                ],
                "type": "doc.field",
                "view": "\"email\"|\"number\"|\"text\"|\"url\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Insert text at position\n\n@*param* `text` — Text to insert\n\n@*param* `position` — Position to insert at (default: cursor position)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2536,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2536,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Text to insert",
                            "finish": [
                                2536,
                                32
                            ],
                            "name": "text",
                            "rawdesc": "Text to insert",
                            "start": [
                                2536,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Position to insert at (default: cursor position)",
                            "finish": [
                                2536,
                                42
                            ],
                            "name": "position",
                            "rawdesc": "Position to insert at (default: cursor position)",
                            "start": [
                                2536,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Insert text at position\n\n@*param* `text` — Text to insert\n\n@*param* `position` — Position to insert at (default: cursor position)",
                    "finish": [
                        2542,
                        3
                    ],
                    "rawdesc": " Insert text at position",
                    "start": [
                        2536,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:insertText(text: string, position?: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2536,
                    27
                ],
                "name": "insertText",
                "rawdesc": " Insert text at position",
                "start": [
                    2536,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if this element is focused",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2501,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2501,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Check if this element is focused",
                    "finish": [
                        2506,
                        3
                    ],
                    "rawdesc": " Check if this element is focused",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2501,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:isFocused()\n  -> boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2501,
                    26
                ],
                "name": "isFocused",
                "rawdesc": " Check if this element is focused",
                "start": [
                    2501,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along main axis (default: FLEX_START)",
                "extends": {
                    "finish": [
                        28,
                        39
                    ],
                    "start": [
                        28,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                28,
                                39
                            ],
                            "start": [
                                28,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "JustifyContent"
                        }
                    ],
                    "view": "JustifyContent"
                },
                "file": "modules/Element.lua",
                "finish": [
                    28,
                    39
                ],
                "name": "justifyContent",
                "rawdesc": "Alignment of items along main axis (default: FLEX_START)",
                "start": [
                    28,
                    10
                ],
                "type": "doc.field",
                "view": "JustifyContent",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of the item itself along main axis (default: AUTO)",
                "extends": {
                    "finish": [
                        32,
                        33
                    ],
                    "start": [
                        32,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                32,
                                33
                            ],
                            "start": [
                                32,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "JustifySelf"
                        }
                    ],
                    "view": "JustifySelf"
                },
                "file": "modules/Element.lua",
                "finish": [
                    32,
                    33
                ],
                "name": "justifySelf",
                "rawdesc": "Alignment of the item itself along main axis (default: AUTO)",
                "start": [
                    32,
                    10
                ],
                "type": "doc.field",
                "view": "JustifySelf",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle key press (special keys)\n\n@*param* `key` — Key name\n\n@*param* `scancode` — Scancode\n\n@*param* `isrepeat` — Whether this is a key repeat",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2625,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2625,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Key name",
                            "finish": [
                                2625,
                                31
                            ],
                            "name": "key",
                            "rawdesc": "Key name",
                            "start": [
                                2625,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Scancode",
                            "finish": [
                                2625,
                                41
                            ],
                            "name": "scancode",
                            "rawdesc": "Scancode",
                            "start": [
                                2625,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Whether this is a key repeat",
                            "finish": [
                                2625,
                                51
                            ],
                            "name": "isrepeat",
                            "rawdesc": "Whether this is a key repeat",
                            "start": [
                                2625,
                                43
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": " Handle key press (special keys)\n\n@*param* `key` — Key name\n\n@*param* `scancode` — Scancode\n\n@*param* `isrepeat` — Whether this is a key repeat",
                    "finish": [
                        2631,
                        3
                    ],
                    "rawdesc": " Handle key press (special keys)",
                    "start": [
                        2625,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:keypressed(key: string, scancode: string, isrepeat: boolean)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2625,
                    27
                ],
                "name": "keypressed",
                "rawdesc": " Handle key press (special keys)",
                "start": [
                    2625,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1769,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1769,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "finish": [
                        1772,
                        3
                    ],
                    "start": [
                        1769,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:layoutChildren()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1769,
                    31
                ],
                "name": "layoutChildren",
                "start": [
                    1769,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from left edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        11,
                        22
                    ],
                    "start": [
                        11,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                21
                            ],
                            "start": [
                                11,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    11,
                    22
                ],
                "name": "left",
                "rawdesc": "Offset from left edge (CSS-style positioning)",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Margin around children (default: {top=0, right=0, bottom=0, left=0})",
                "extends": {
                    "finish": [
                        25,
                        75
                    ],
                    "start": [
                        25,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        25,
                                        29
                                    ],
                                    "name": {
                                        "[1]": "top",
                                        "finish": [
                                            25,
                                            21
                                        ],
                                        "start": [
                                            25,
                                            18
                                        ],
                                        "type": "doc.field.name",
                                        "view": "top"
                                    },
                                    "start": [
                                        25,
                                        18
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        25,
                                        44
                                    ],
                                    "name": {
                                        "[1]": "right",
                                        "finish": [
                                            25,
                                            36
                                        ],
                                        "start": [
                                            25,
                                            31
                                        ],
                                        "type": "doc.field.name",
                                        "view": "right"
                                    },
                                    "start": [
                                        25,
                                        31
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        25,
                                        60
                                    ],
                                    "name": {
                                        "[1]": "bottom",
                                        "finish": [
                                            25,
                                            52
                                        ],
                                        "start": [
                                            25,
                                            46
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottom"
                                    },
                                    "start": [
                                        25,
                                        46
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        25,
                                        74
                                    ],
                                    "name": {
                                        "[1]": "left",
                                        "finish": [
                                            25,
                                            66
                                        ],
                                        "start": [
                                            25,
                                            62
                                        ],
                                        "type": "doc.field.name",
                                        "view": "left"
                                    },
                                    "start": [
                                        25,
                                        62
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                25,
                                75
                            ],
                            "start": [
                                25,
                                17
                            ],
                            "type": "doc.type.table",
                            "view": "{ top: number, right: number, bottom: number, left: number }"
                        }
                    ],
                    "view": "{ top: number, right: number, bottom: number, left: number }"
                },
                "file": "modules/Element.lua",
                "finish": [
                    25,
                    75
                ],
                "name": "margin",
                "rawdesc": "Margin around children (default: {top=0, right=0, bottom=0, left=0})",
                "start": [
                    25,
                    10
                ],
                "type": "doc.field",
                "view": "{ top: number, right: number, bottom: number, left: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum text length in characters (default: nil)",
                "extends": {
                    "finish": [
                        73,
                        27
                    ],
                    "start": [
                        73,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                73,
                                26
                            ],
                            "start": [
                                73,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    73,
                    27
                ],
                "name": "maxLength",
                "rawdesc": "Maximum text length in characters (default: nil)",
                "start": [
                    73,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum number of lines (default: nil)",
                "extends": {
                    "finish": [
                        72,
                        26
                    ],
                    "start": [
                        72,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                72,
                                25
                            ],
                            "start": [
                                72,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    72,
                    26
                ],
                "name": "maxLines",
                "rawdesc": "Maximum number of lines (default: nil)",
                "start": [
                    72,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        36,
                        29
                    ],
                    "start": [
                        36,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                36,
                                28
                            ],
                            "start": [
                                36,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    36,
                    29
                ],
                "name": "maxTextSize",
                "start": [
                    36,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        35,
                        29
                    ],
                    "start": [
                        35,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                35,
                                28
                            ],
                            "start": [
                                35,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    35,
                    29
                ],
                "name": "minTextSize",
                "start": [
                    35,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor by delta characters\n\n@*param* `delta` — Number of characters to move (positive or negative)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2365,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2365,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Number of characters to move (positive or negative)",
                            "finish": [
                                2365,
                                35
                            ],
                            "name": "delta",
                            "rawdesc": "Number of characters to move (positive or negative)",
                            "start": [
                                2365,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Move cursor by delta characters\n\n@*param* `delta` — Number of characters to move (positive or negative)",
                    "finish": [
                        2369,
                        3
                    ],
                    "rawdesc": " Move cursor by delta characters",
                    "start": [
                        2365,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorBy(delta: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2365,
                    29
                ],
                "name": "moveCursorBy",
                "rawdesc": " Move cursor by delta characters",
                "start": [
                    2365,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor to end of text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2379,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2379,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Move cursor to end of text",
                    "finish": [
                        2383,
                        3
                    ],
                    "rawdesc": " Move cursor to end of text",
                    "start": [
                        2379,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorToEnd()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2379,
                    32
                ],
                "name": "moveCursorToEnd",
                "rawdesc": " Move cursor to end of text",
                "start": [
                    2379,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor to end of current line",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2393,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2393,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Move cursor to end of current line",
                    "finish": [
                        2397,
                        3
                    ],
                    "rawdesc": " Move cursor to end of current line",
                    "start": [
                        2393,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorToLineEnd()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2393,
                    36
                ],
                "name": "moveCursorToLineEnd",
                "rawdesc": " Move cursor to end of current line",
                "start": [
                    2393,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor to start of current line",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2386,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2386,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Move cursor to start of current line",
                    "finish": [
                        2390,
                        3
                    ],
                    "rawdesc": " Move cursor to start of current line",
                    "start": [
                        2386,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorToLineStart()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2386,
                    38
                ],
                "name": "moveCursorToLineStart",
                "rawdesc": " Move cursor to start of current line",
                "start": [
                    2386,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor to start of next word",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2407,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2407,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Move cursor to start of next word",
                    "finish": [
                        2411,
                        3
                    ],
                    "rawdesc": " Move cursor to start of next word",
                    "start": [
                        2407,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorToNextWord()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2407,
                    37
                ],
                "name": "moveCursorToNextWord",
                "rawdesc": " Move cursor to start of next word",
                "start": [
                    2407,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor to start of previous word",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2400,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2400,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Move cursor to start of previous word",
                    "finish": [
                        2404,
                        3
                    ],
                    "rawdesc": " Move cursor to start of previous word",
                    "start": [
                        2400,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorToPreviousWord()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2400,
                    41
                ],
                "name": "moveCursorToPreviousWord",
                "rawdesc": " Move cursor to start of previous word",
                "start": [
                    2400,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Move cursor to start of text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2372,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2372,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Move cursor to start of text",
                    "finish": [
                        2376,
                        3
                    ],
                    "rawdesc": " Move cursor to start of text",
                    "start": [
                        2372,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:moveCursorToStart()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2372,
                    34
                ],
                "name": "moveCursorToStart",
                "rawdesc": " Move cursor to start of text",
                "start": [
                    2372,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element supports multiple lines (default: false)",
                "extends": {
                    "finish": [
                        70,
                        27
                    ],
                    "start": [
                        70,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                70,
                                27
                            ],
                            "start": [
                                70,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    70,
                    27
                ],
                "name": "multiline",
                "rawdesc": "Whether the element supports multiple lines (default: false)",
                "start": [
                    70,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `deps` — Required dependency table (provided by FlexLove)",
                "extends": {
                    "args": [
                        {
                            "desc": "=====================================--\n For Element.lua\n=====================================--",
                            "finish": [
                                148,
                                26
                            ],
                            "name": "props",
                            "rawdesc": "=====================================--\n For Element.lua\n=====================================--",
                            "start": [
                                148,
                                21
                            ],
                            "type": "local",
                            "view": "ElementProps"
                        },
                        {
                            "desc": "Required dependency table (provided by FlexLove)",
                            "finish": [
                                148,
                                32
                            ],
                            "name": "deps",
                            "rawdesc": "Required dependency table (provided by FlexLove)",
                            "start": [
                                148,
                                28
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "@*param* `deps` — Required dependency table (provided by FlexLove)",
                    "finish": [
                        1317,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Element"
                        }
                    ],
                    "start": [
                        148,
                        0
                    ],
                    "type": "function",
                    "view": "function Element.new(props: ElementProps, deps: table)\n  -> Element"
                },
                "file": "modules/Element.lua",
                "finish": [
                    148,
                    20
                ],
                "name": "new",
                "start": [
                    148,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image fit mode (default: \"fill\")",
                "extends": {
                    "finish": [
                        102,
                        65
                    ],
                    "start": [
                        102,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                102,
                                26
                            ],
                            "start": [
                                102,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"fill\""
                        },
                        {
                            "finish": [
                                102,
                                36
                            ],
                            "start": [
                                102,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"contain\""
                        },
                        {
                            "finish": [
                                102,
                                44
                            ],
                            "start": [
                                102,
                                37
                            ],
                            "type": "doc.type.string",
                            "view": "\"cover\""
                        },
                        {
                            "finish": [
                                102,
                                57
                            ],
                            "start": [
                                102,
                                45
                            ],
                            "type": "doc.type.string",
                            "view": "\"scale-down\""
                        },
                        {
                            "finish": [
                                102,
                                64
                            ],
                            "start": [
                                102,
                                58
                            ],
                            "type": "doc.type.string",
                            "view": "\"none\""
                        }
                    ],
                    "view": "(\"contain\"|\"cover\"|\"fill\"|\"none\"|\"scale-down\")?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    102,
                    65
                ],
                "name": "objectFit",
                "rawdesc": "Image fit mode (default: \"fill\")",
                "start": [
                    102,
                    10
                ],
                "type": "doc.field",
                "view": "(\"contain\"|\"cover\"|\"fill\"|\"none\"|\"scale-down\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                "extends": {
                    "finish": [
                        103,
                        32
                    ],
                    "start": [
                        103,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                103,
                                31
                            ],
                            "start": [
                                103,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    103,
                    32
                ],
                "name": "objectPosition",
                "rawdesc": "Image position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                "start": [
                    103,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function when element loses focus",
                "extends": {
                    "finish": [
                        43,
                        38
                    ],
                    "start": [
                        43,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        43,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            43,
                                            28
                                        ],
                                        "start": [
                                            43,
                                            21
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        43,
                                        21
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                43,
                                37
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                43,
                                17
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    43,
                    38
                ],
                "name": "onBlur",
                "rawdesc": "Callback function when element loses focus",
                "start": [
                    43,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function when Enter key is pressed",
                "extends": {
                    "finish": [
                        46,
                        39
                    ],
                    "start": [
                        46,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        46,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            46,
                                            29
                                        ],
                                        "start": [
                                            46,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        46,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                46,
                                38
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                46,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    46,
                    39
                ],
                "name": "onEnter",
                "rawdesc": "Callback function when Enter key is pressed",
                "start": [
                    46,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function for interaction events",
                "extends": {
                    "finish": [
                        41,
                        57
                    ],
                    "start": [
                        41,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        41,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            41,
                                            29
                                        ],
                                        "start": [
                                            41,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        41,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        41,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "event",
                                        "finish": [
                                            41,
                                            44
                                        ],
                                        "start": [
                                            41,
                                            39
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "event"
                                    },
                                    "start": [
                                        41,
                                        39
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "InputEvent"
                                }
                            ],
                            "finish": [
                                41,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                41,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, event: InputEvent)"
                        }
                    ],
                    "view": "fun(element: Element, event: InputEvent)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    41,
                    57
                ],
                "name": "onEvent",
                "rawdesc": "Callback function for interaction events",
                "start": [
                    41,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, event: InputEvent)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function when element receives focus",
                "extends": {
                    "finish": [
                        42,
                        39
                    ],
                    "start": [
                        42,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        42,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            42,
                                            29
                                        ],
                                        "start": [
                                            42,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        42,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                42,
                                38
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                42,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    42,
                    39
                ],
                "name": "onFocus",
                "rawdesc": "Callback function when element receives focus",
                "start": [
                    42,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function when text changes",
                "extends": {
                    "finish": [
                        45,
                        57
                    ],
                    "start": [
                        45,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        45,
                                        42
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            45,
                                            34
                                        ],
                                        "start": [
                                            45,
                                            27
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        45,
                                        27
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        45,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "text",
                                        "finish": [
                                            45,
                                            48
                                        ],
                                        "start": [
                                            45,
                                            44
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "text"
                                    },
                                    "start": [
                                        45,
                                        44
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                45,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                45,
                                23
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, text: string)"
                        }
                    ],
                    "view": "fun(element: Element, text: string)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    45,
                    57
                ],
                "name": "onTextChange",
                "rawdesc": "Callback function when text changes",
                "start": [
                    45,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, text: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function for text input",
                "extends": {
                    "finish": [
                        44,
                        56
                    ],
                    "start": [
                        44,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        44,
                                        41
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            44,
                                            33
                                        ],
                                        "start": [
                                            44,
                                            26
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        44,
                                        26
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        44,
                                        54
                                    ],
                                    "name": {
                                        "[1]": "text",
                                        "finish": [
                                            44,
                                            47
                                        ],
                                        "start": [
                                            44,
                                            43
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "text"
                                    },
                                    "start": [
                                        44,
                                        43
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                44,
                                55
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                44,
                                22
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, text: string)"
                        }
                    ],
                    "view": "fun(element: Element, text: string)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    44,
                    56
                ],
                "name": "onTextInput",
                "rawdesc": "Callback function for text input",
                "start": [
                    44,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, text: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        24
                    ],
                    "start": [
                        15,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                24
                            ],
                            "start": [
                                15,
                                18
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    15,
                    24
                ],
                "name": "opacity",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Overflow behavior for both axes",
                "extends": {
                    "finish": [
                        113,
                        26
                    ],
                    "start": [
                        113,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                113,
                                25
                            ],
                            "start": [
                                113,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    113,
                    26
                ],
                "name": "overflow",
                "rawdesc": "Overflow behavior for both axes",
                "start": [
                    113,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Overflow behavior for horizontal axis",
                "extends": {
                    "finish": [
                        114,
                        27
                    ],
                    "start": [
                        114,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                114,
                                26
                            ],
                            "start": [
                                114,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    114,
                    27
                ],
                "name": "overflowX",
                "rawdesc": "Overflow behavior for horizontal axis",
                "start": [
                    114,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Overflow behavior for vertical axis",
                "extends": {
                    "finish": [
                        115,
                        27
                    ],
                    "start": [
                        115,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                115,
                                26
                            ],
                            "start": [
                                115,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    115,
                    27
                ],
                "name": "overflowY",
                "rawdesc": "Overflow behavior for vertical axis",
                "start": [
                    115,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Padding around children (default: {top=0, right=0, bottom=0, left=0})",
                "extends": {
                    "finish": [
                        24,
                        77
                    ],
                    "start": [
                        24,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        24,
                                        30
                                    ],
                                    "name": {
                                        "[1]": "top",
                                        "finish": [
                                            24,
                                            22
                                        ],
                                        "start": [
                                            24,
                                            19
                                        ],
                                        "type": "doc.field.name",
                                        "view": "top"
                                    },
                                    "start": [
                                        24,
                                        19
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        24,
                                        45
                                    ],
                                    "name": {
                                        "[1]": "right",
                                        "finish": [
                                            24,
                                            37
                                        ],
                                        "start": [
                                            24,
                                            32
                                        ],
                                        "type": "doc.field.name",
                                        "view": "right"
                                    },
                                    "start": [
                                        24,
                                        32
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        24,
                                        61
                                    ],
                                    "name": {
                                        "[1]": "bottom",
                                        "finish": [
                                            24,
                                            53
                                        ],
                                        "start": [
                                            24,
                                            47
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottom"
                                    },
                                    "start": [
                                        24,
                                        47
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        24,
                                        75
                                    ],
                                    "name": {
                                        "[1]": "left",
                                        "finish": [
                                            24,
                                            67
                                        ],
                                        "start": [
                                            24,
                                            63
                                        ],
                                        "type": "doc.field.name",
                                        "view": "left"
                                    },
                                    "start": [
                                        24,
                                        63
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                24,
                                76
                            ],
                            "start": [
                                24,
                                18
                            ],
                            "type": "doc.type.table",
                            "view": "{ top: number, right: number, bottom: number, left: number }"
                        }
                    ],
                    "view": "{ top: number, right: number, bottom: number, left: number }?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    24,
                    77
                ],
                "name": "padding",
                "rawdesc": "Padding around children (default: {top=0, right=0, bottom=0, left=0})",
                "start": [
                    24,
                    10
                ],
                "type": "doc.field",
                "view": "{ top: number, right: number, bottom: number, left: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Parent element (nil if top-level)",
                "extends": {
                    "finish": [
                        13,
                        25
                    ],
                    "start": [
                        13,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                24
                            ],
                            "start": [
                                13,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    13,
                    25
                ],
                "name": "parent",
                "rawdesc": "Parent element (nil if top-level)",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to display text as password (default: false)",
                "extends": {
                    "finish": [
                        75,
                        30
                    ],
                    "start": [
                        75,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                75,
                                30
                            ],
                            "start": [
                                75,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    75,
                    30
                ],
                "name": "passwordMode",
                "rawdesc": "Whether to display text as password (default: false)",
                "start": [
                    75,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Placeholder text when empty (default: nil)",
                "extends": {
                    "finish": [
                        74,
                        29
                    ],
                    "start": [
                        74,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                74,
                                28
                            ],
                            "start": [
                                74,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    74,
                    29
                ],
                "name": "placeholder",
                "rawdesc": "Placeholder text when empty (default: nil)",
                "start": [
                    74,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Layout positioning mode (default: RELATIVE)",
                "extends": {
                    "finish": [
                        26,
                        33
                    ],
                    "start": [
                        26,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                26,
                                33
                            ],
                            "start": [
                                26,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Positioning"
                        }
                    ],
                    "view": "Positioning"
                },
                "file": "modules/Element.lua",
                "finish": [
                    26,
                    33
                ],
                "name": "positioning",
                "rawdesc": "Layout positioning mode (default: RELATIVE)",
                "start": [
                    26,
                    10
                ],
                "type": "doc.field",
                "view": "Positioning",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Previous game size for resize calculations",
                "extends": {
                    "finish": [
                        19,
                        52
                    ],
                    "start": [
                        19,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        19,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            19,
                                            29
                                        ],
                                        "start": [
                                            19,
                                            24
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        19,
                                        24
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        19,
                                        51
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            19,
                                            44
                                        ],
                                        "start": [
                                            19,
                                            38
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        19,
                                        38
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                19,
                                52
                            ],
                            "start": [
                                19,
                                23
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number, height: number }"
                        }
                    ],
                    "view": "{ width: number, height: number }"
                },
                "file": "modules/Element.lua",
                "finish": [
                    19,
                    52
                ],
                "name": "prevGameSize",
                "rawdesc": "Previous game size for resize calculations",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number, height: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2184,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2184,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                2184,
                                50
                            ],
                            "name": "newViewportWidth",
                            "start": [
                                2184,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                2184,
                                69
                            ],
                            "name": "newViewportHeight",
                            "start": [
                                2184,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "finish": [
                        2186,
                        3
                    ],
                    "start": [
                        2184,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:recalculateUnits(newViewportWidth: number, newViewportHeight: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2184,
                    33
                ],
                "name": "recalculateUnits",
                "start": [
                    2184,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Remove a specific child from this element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1696,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1696,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1696,
                                34
                            ],
                            "name": "child",
                            "start": [
                                1696,
                                29
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "desc": " Remove a specific child from this element",
                    "finish": [
                        1724,
                        3
                    ],
                    "rawdesc": " Remove a specific child from this element",
                    "start": [
                        1696,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:removeChild(child: Element)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1696,
                    28
                ],
                "name": "removeChild",
                "rawdesc": " Remove a specific child from this element",
                "start": [
                    1696,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Replace text in range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)\n\n@*param* `newText` — Replacement text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2558,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2558,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Start position (inclusive)",
                            "finish": [
                                2558,
                                37
                            ],
                            "name": "startPos",
                            "rawdesc": "Start position (inclusive)",
                            "start": [
                                2558,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "End position (inclusive)",
                            "finish": [
                                2558,
                                45
                            ],
                            "name": "endPos",
                            "rawdesc": "End position (inclusive)",
                            "start": [
                                2558,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Replacement text",
                            "finish": [
                                2558,
                                54
                            ],
                            "name": "newText",
                            "rawdesc": "Replacement text",
                            "start": [
                                2558,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Replace text in range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)\n\n@*param* `newText` — Replacement text",
                    "finish": [
                        2564,
                        3
                    ],
                    "rawdesc": " Replace text in range",
                    "start": [
                        2558,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:replaceText(startPos: number, endPos: number, newText: string)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2558,
                    28
                ],
                "name": "replaceText",
                "rawdesc": " Replace text in range",
                "start": [
                    2558,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Resize element and its children based on game window size change",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2191,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2191,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                2191,
                                36
                            ],
                            "name": "newGameWidth",
                            "start": [
                                2191,
                                24
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                2191,
                                51
                            ],
                            "name": "newGameHeight",
                            "start": [
                                2191,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Resize element and its children based on game window size change",
                    "finish": [
                        2266,
                        3
                    ],
                    "rawdesc": " Resize element and its children based on game window size change",
                    "start": [
                        2191,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:resize(newGameWidth: number, newGameHeight: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2191,
                    23
                ],
                "name": "resize",
                "rawdesc": " Resize element and its children based on game window size change",
                "start": [
                    2191,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from right edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        9,
                        23
                    ],
                    "start": [
                        9,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                22
                            ],
                            "start": [
                                9,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    9,
                    23
                ],
                "name": "right",
                "rawdesc": "Offset from right edge (CSS-style positioning)",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid rows",
                "extends": {
                    "finish": [
                        54,
                        31
                    ],
                    "start": [
                        54,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                54,
                                23
                            ],
                            "start": [
                                54,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                54,
                                30
                            ],
                            "start": [
                                54,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    54,
                    31
                ],
                "name": "rowGap",
                "rawdesc": "Gap between grid rows",
                "start": [
                    54,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scale multiplier for 9-patch corners/edges. E.g., 2 = 2x size (overrides theme setting)",
                "extends": {
                    "finish": [
                        64,
                        30
                    ],
                    "start": [
                        64,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                64,
                                29
                            ],
                            "start": [
                                64,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    64,
                    30
                ],
                "name": "scaleCorners",
                "rawdesc": "Scale multiplier for 9-patch corners/edges. E.g., 2 = 2x size (overrides theme setting)",
                "start": [
                    64,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scaling algorithm for 9-patch corners: \"nearest\" (sharp/pixelated) or \"bilinear\" (smooth) (overrides theme setting)",
                "extends": {
                    "finish": [
                        65,
                        48
                    ],
                    "start": [
                        65,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                65,
                                36
                            ],
                            "start": [
                                65,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"nearest\""
                        },
                        {
                            "finish": [
                                65,
                                47
                            ],
                            "start": [
                                65,
                                37
                            ],
                            "type": "doc.type.string",
                            "view": "\"bilinear\""
                        }
                    ],
                    "view": "(\"bilinear\"|\"nearest\")?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    65,
                    48
                ],
                "name": "scalingAlgorithm",
                "rawdesc": "Scaling algorithm for 9-patch corners: \"nearest\" (sharp/pixelated) or \"bilinear\" (smooth) (overrides theme setting)",
                "start": [
                    65,
                    10
                ],
                "type": "doc.field",
                "view": "(\"bilinear\"|\"nearest\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll by delta amount (delegates to ScrollManager)\n\n@*param* `dx` — X delta (nil for no change)\n\n@*param* `dy` — Y delta (nil for no change)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1513,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1513,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "X delta (nil for no change)",
                            "finish": [
                                1513,
                                28
                            ],
                            "name": "dx",
                            "rawdesc": "X delta (nil for no change)",
                            "start": [
                                1513,
                                26
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y delta (nil for no change)",
                            "finish": [
                                1513,
                                32
                            ],
                            "name": "dy",
                            "rawdesc": "Y delta (nil for no change)",
                            "start": [
                                1513,
                                30
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Scroll by delta amount (delegates to ScrollManager)\n\n@*param* `dx` — X delta (nil for no change)\n\n@*param* `dy` — Y delta (nil for no change)",
                    "finish": [
                        1518,
                        3
                    ],
                    "rawdesc": " Scroll by delta amount (delegates to ScrollManager)",
                    "start": [
                        1513,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:scrollBy(dx?: number, dy?: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1513,
                    25
                ],
                "name": "scrollBy",
                "rawdesc": " Scroll by delta amount (delegates to ScrollManager)",
                "start": [
                    1513,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scroll speed multiplier",
                "extends": {
                    "finish": [
                        121,
                        29
                    ],
                    "start": [
                        121,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                121,
                                28
                            ],
                            "start": [
                                121,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    121,
                    29
                ],
                "name": "scrollSpeed",
                "rawdesc": "Scroll speed multiplier",
                "start": [
                    121,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll to bottom",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1526,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1526,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Scroll to bottom",
                    "finish": [
                        1531,
                        3
                    ],
                    "rawdesc": " Scroll to bottom",
                    "start": [
                        1526,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:scrollToBottom()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1526,
                    31
                ],
                "name": "scrollToBottom",
                "rawdesc": " Scroll to bottom",
                "start": [
                    1526,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll to left",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1534,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1534,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Scroll to left",
                    "finish": [
                        1536,
                        3
                    ],
                    "rawdesc": " Scroll to left",
                    "start": [
                        1534,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:scrollToLeft()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1534,
                    29
                ],
                "name": "scrollToLeft",
                "rawdesc": " Scroll to left",
                "start": [
                    1534,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll to right",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1539,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1539,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Scroll to right",
                    "finish": [
                        1544,
                        3
                    ],
                    "rawdesc": " Scroll to right",
                    "start": [
                        1539,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:scrollToRight()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1539,
                    30
                ],
                "name": "scrollToRight",
                "rawdesc": " Scroll to right",
                "start": [
                    1539,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll to top",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1521,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1521,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Scroll to top",
                    "finish": [
                        1523,
                        3
                    ],
                    "rawdesc": " Scroll to top",
                    "start": [
                        1521,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:scrollToTop()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1521,
                    28
                ],
                "name": "scrollToTop",
                "rawdesc": " Scroll to top",
                "start": [
                    1521,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether text is scrollable (default: false for single-line, true for multi-line)",
                "extends": {
                    "finish": [
                        78,
                        28
                    ],
                    "start": [
                        78,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                78,
                                28
                            ],
                            "start": [
                                78,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    78,
                    28
                ],
                "name": "scrollable",
                "rawdesc": "Whether text is scrollable (default: false for single-line, true for multi-line)",
                "start": [
                    78,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar thumb color",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        117,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        117,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                117,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                117,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    117,
                    31
                ],
                "name": "scrollbarColor",
                "rawdesc": "Scrollbar thumb color",
                "start": [
                    117,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar padding from edges",
                "extends": {
                    "finish": [
                        120,
                        34
                    ],
                    "start": [
                        120,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                120,
                                33
                            ],
                            "start": [
                                120,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    120,
                    34
                ],
                "name": "scrollbarPadding",
                "rawdesc": "Scrollbar padding from edges",
                "start": [
                    120,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar corner radius",
                "extends": {
                    "finish": [
                        119,
                        33
                    ],
                    "start": [
                        119,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                119,
                                32
                            ],
                            "start": [
                                119,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    119,
                    33
                ],
                "name": "scrollbarRadius",
                "rawdesc": "Scrollbar corner radius",
                "start": [
                    119,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar track color",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        118,
                        36
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        118,
                        30
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                118,
                                35
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                118,
                                30
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    118,
                    36
                ],
                "name": "scrollbarTrackColor",
                "rawdesc": "Scrollbar track color",
                "start": [
                    118,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar width in pixels",
                "extends": {
                    "finish": [
                        116,
                        32
                    ],
                    "start": [
                        116,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                116,
                                31
                            ],
                            "start": [
                                116,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    116,
                    32
                ],
                "name": "scrollbarWidth",
                "rawdesc": "Scrollbar width in pixels",
                "start": [
                    116,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Select all text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2452,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2452,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " Select all text",
                    "finish": [
                        2456,
                        3
                    ],
                    "rawdesc": " Select all text",
                    "start": [
                        2452,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:selectAll()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2452,
                    26
                ],
                "name": "selectAll",
                "rawdesc": " Select all text",
                "start": [
                    2452,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to select all text on focus (default: false)",
                "extends": {
                    "finish": [
                        80,
                        31
                    ],
                    "start": [
                        80,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                80,
                                31
                            ],
                            "start": [
                                80,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Element.lua",
                "finish": [
                    80,
                    31
                ],
                "name": "selectOnFocus",
                "rawdesc": "Whether to select all text on focus (default: false)",
                "start": [
                    80,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Selection background color (default: nil, uses theme or default)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        82,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        82,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                82,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                82,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    82,
                    31
                ],
                "name": "selectionColor",
                "rawdesc": "Selection background color (default: nil, uses theme or default)",
                "start": [
                    82,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set cursor position\n\n@*param* `position` — Character index (0-based)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2348,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2348,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Character index (0-based)",
                            "finish": [
                                2348,
                                43
                            ],
                            "name": "position",
                            "rawdesc": "Character index (0-based)",
                            "start": [
                                2348,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Set cursor position\n\n@*param* `position` — Character index (0-based)",
                    "finish": [
                        2352,
                        3
                    ],
                    "rawdesc": " Set cursor position",
                    "start": [
                        2348,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:setCursorPosition(position: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2348,
                    34
                ],
                "name": "setCursorPosition",
                "rawdesc": " Set cursor position",
                "start": [
                    2348,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set scroll position with bounds clamping (delegates to ScrollManager)\n\n@*param* `x` — X scroll position (nil to keep current)\n\n@*param* `y` — Y scroll position (nil to keep current)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1380,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1380,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "X scroll position (nil to keep current)",
                            "finish": [
                                1380,
                                36
                            ],
                            "name": "x",
                            "rawdesc": "X scroll position (nil to keep current)",
                            "start": [
                                1380,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y scroll position (nil to keep current)",
                            "finish": [
                                1380,
                                39
                            ],
                            "name": "y",
                            "rawdesc": "Y scroll position (nil to keep current)",
                            "start": [
                                1380,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Set scroll position with bounds clamping (delegates to ScrollManager)\n\n@*param* `x` — X scroll position (nil to keep current)\n\n@*param* `y` — Y scroll position (nil to keep current)",
                    "finish": [
                        1385,
                        3
                    ],
                    "rawdesc": " Set scroll position with bounds clamping (delegates to ScrollManager)",
                    "start": [
                        1380,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:setScrollPosition(x?: number, y?: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1380,
                    34
                ],
                "name": "setScrollPosition",
                "rawdesc": " Set scroll position with bounds clamping (delegates to ScrollManager)",
                "start": [
                    1380,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set selection range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2420,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2420,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Start position (inclusive)",
                            "finish": [
                                2420,
                                38
                            ],
                            "name": "startPos",
                            "rawdesc": "Start position (inclusive)",
                            "start": [
                                2420,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "End position (inclusive)",
                            "finish": [
                                2420,
                                46
                            ],
                            "name": "endPos",
                            "rawdesc": "End position (inclusive)",
                            "start": [
                                2420,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Set selection range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                    "finish": [
                        2424,
                        3
                    ],
                    "rawdesc": " Set selection range",
                    "start": [
                        2420,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:setSelection(startPos: number, endPos: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2420,
                    29
                ],
                "name": "setSelection",
                "rawdesc": " Set selection range",
                "start": [
                    2420,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set text buffer and mark dirty",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2523,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2523,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                2523,
                                29
                            ],
                            "name": "text",
                            "start": [
                                2523,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Set text buffer and mark dirty",
                    "finish": [
                        2531,
                        3
                    ],
                    "rawdesc": " Set text buffer and mark dirty",
                    "start": [
                        2523,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:setText(text: string)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2523,
                    24
                ],
                "name": "setText",
                "rawdesc": " Set text buffer and mark dirty",
                "start": [
                    2523,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " same as calling updateOpacity(1)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2338,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2338,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        }
                    ],
                    "desc": " same as calling updateOpacity(1)",
                    "finish": [
                        2340,
                        3
                    ],
                    "rawdesc": " same as calling updateOpacity(1)",
                    "start": [
                        2338,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:show()"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2338,
                    21
                ],
                "name": "show",
                "rawdesc": " same as calling updateOpacity(1)",
                "start": [
                    2338,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text content to display in the element",
                "extends": {
                    "finish": [
                        20,
                        22
                    ],
                    "start": [
                        20,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                20,
                                21
                            ],
                            "start": [
                                20,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    20,
                    22
                ],
                "name": "text",
                "rawdesc": "Text content to display in the element",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of the text content",
                "extends": {
                    "finish": [
                        22,
                        29
                    ],
                    "start": [
                        22,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                29
                            ],
                            "start": [
                                22,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "TextAlign"
                        }
                    ],
                    "view": "TextAlign"
                },
                "file": "modules/Element.lua",
                "finish": [
                    22,
                    29
                ],
                "name": "textAlign",
                "rawdesc": "Alignment of the text content",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "TextAlign",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Color of the text content",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        21,
                        25
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        21,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                21,
                                25
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                21,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/Element.lua",
                "finish": [
                    21,
                    25
                ],
                "name": "textColor",
                "rawdesc": "Color of the text content",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text overflow behavior (default: \"clip\")",
                "extends": {
                    "finish": [
                        77,
                        49
                    ],
                    "start": [
                        77,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                77,
                                29
                            ],
                            "start": [
                                77,
                                23
                            ],
                            "type": "doc.type.string",
                            "view": "\"clip\""
                        },
                        {
                            "finish": [
                                77,
                                40
                            ],
                            "start": [
                                77,
                                30
                            ],
                            "type": "doc.type.string",
                            "view": "\"ellipsis\""
                        },
                        {
                            "finish": [
                                77,
                                49
                            ],
                            "start": [
                                77,
                                41
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        }
                    ],
                    "view": "\"clip\"|\"ellipsis\"|\"scroll\""
                },
                "file": "modules/Element.lua",
                "finish": [
                    77,
                    49
                ],
                "name": "textOverflow",
                "rawdesc": "Text overflow behavior (default: \"clip\")",
                "start": [
                    77,
                    10
                ],
                "type": "doc.field",
                "view": "\"clip\"|\"ellipsis\"|\"scroll\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Resolved font size for text content in pixels",
                "extends": {
                    "finish": [
                        34,
                        26
                    ],
                    "start": [
                        34,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                34,
                                25
                            ],
                            "start": [
                                34,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    34,
                    26
                ],
                "name": "textSize",
                "rawdesc": "Resolved font size for text content in pixels",
                "start": [
                    34,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text wrapping mode (default: false for single-line, \"word\" for multi-line)",
                "extends": {
                    "finish": [
                        71,
                        40
                    ],
                    "start": [
                        71,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                71,
                                26
                            ],
                            "start": [
                                71,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        },
                        {
                            "finish": [
                                71,
                                33
                            ],
                            "start": [
                                71,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"word\""
                        },
                        {
                            "finish": [
                                71,
                                40
                            ],
                            "start": [
                                71,
                                34
                            ],
                            "type": "doc.type.string",
                            "view": "\"char\""
                        }
                    ],
                    "view": "boolean|\"char\"|\"word\""
                },
                "file": "modules/Element.lua",
                "finish": [
                    71,
                    40
                ],
                "name": "textWrap",
                "rawdesc": "Text wrapping mode (default: false for single-line, \"word\" for multi-line)",
                "start": [
                    71,
                    10
                ],
                "type": "doc.field",
                "view": "boolean|\"char\"|\"word\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle text input (character input)\n\n@*param* `text` — Character(s) to insert",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2613,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2613,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "desc": "Character(s) to insert",
                            "finish": [
                                2613,
                                31
                            ],
                            "name": "text",
                            "rawdesc": "Character(s) to insert",
                            "start": [
                                2613,
                                27
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Handle text input (character input)\n\n@*param* `text` — Character(s) to insert",
                    "finish": [
                        2619,
                        3
                    ],
                    "rawdesc": " Handle text input (character input)",
                    "start": [
                        2613,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:textinput(text: string)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2613,
                    26
                ],
                "name": "textinput",
                "rawdesc": " Handle text input (character input)",
                "start": [
                    2613,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Theme component to use for rendering",
                "extends": {
                    "finish": [
                        55,
                        23
                    ],
                    "start": [
                        55,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                55,
                                22
                            ],
                            "start": [
                                55,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    55,
                    23
                ],
                "name": "theme",
                "rawdesc": "Theme component to use for rendering",
                "start": [
                    55,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        56,
                        32
                    ],
                    "start": [
                        56,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                56,
                                31
                            ],
                            "start": [
                                56,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    56,
                    32
                ],
                "name": "themeComponent",
                "start": [
                    56,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from top edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        8,
                        21
                    ],
                    "start": [
                        8,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                20
                            ],
                            "start": [
                                8,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    8,
                    21
                ],
                "name": "top",
                "rawdesc": "Offset from top edge (CSS-style positioning)",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Transform properties for animations and styling",
                "extends": {
                    "finish": [
                        39,
                        34
                    ],
                    "start": [
                        39,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                39,
                                34
                            ],
                            "start": [
                                39,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "TransformProps"
                        }
                    ],
                    "view": "TransformProps"
                },
                "file": "modules/Element.lua",
                "finish": [
                    39,
                    34
                ],
                "name": "transform",
                "rawdesc": "Transform properties for animations and styling",
                "start": [
                    39,
                    10
                ],
                "type": "doc.field",
                "view": "TransformProps",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Transition settings for animations",
                "extends": {
                    "finish": [
                        40,
                        36
                    ],
                    "start": [
                        40,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                40,
                                36
                            ],
                            "start": [
                                40,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "TransitionProps"
                        }
                    ],
                    "view": "TransitionProps"
                },
                "file": "modules/Element.lua",
                "finish": [
                    40,
                    36
                ],
                "name": "transition",
                "rawdesc": "Transition settings for animations",
                "start": [
                    40,
                    10
                ],
                "type": "doc.field",
                "view": "TransitionProps",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Original unit specifications for responsive behavior",
                "extends": {
                    "finish": [
                        47,
                        21
                    ],
                    "start": [
                        47,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                47,
                                21
                            ],
                            "start": [
                                47,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Element.lua",
                "finish": [
                    47,
                    21
                ],
                "name": "units",
                "rawdesc": "Original unit specifications for responsive behavior",
                "start": [
                    47,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Update element (propagate to children)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1976,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1976,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                1976,
                                26
                            ],
                            "name": "dt",
                            "start": [
                                1976,
                                24
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Update element (propagate to children)",
                    "finish": [
                        2180,
                        3
                    ],
                    "rawdesc": " Update element (propagate to children)",
                    "start": [
                        1976,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:update(dt: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    1976,
                    23
                ],
                "name": "update",
                "rawdesc": " Update element (propagate to children)",
                "start": [
                    1976,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2325,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2325,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                2325,
                                41
                            ],
                            "name": "newOpacity",
                            "start": [
                                2325,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "finish": [
                        2330,
                        3
                    ],
                    "start": [
                        2325,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:updateOpacity(newOpacity: number)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2325,
                    30
                ],
                "name": "updateOpacity",
                "start": [
                    2325,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `autoresize` — default: false",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                2316,
                                8
                            ],
                            "name": "self",
                            "start": [
                                2316,
                                8
                            ],
                            "type": "self",
                            "view": "Element"
                        },
                        {
                            "finish": [
                                2316,
                                35
                            ],
                            "name": "newText",
                            "start": [
                                2316,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "default: false",
                            "finish": [
                                2316,
                                47
                            ],
                            "name": "autoresize",
                            "rawdesc": "default: false",
                            "start": [
                                2316,
                                37
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "@*param* `autoresize` — default: false",
                    "finish": [
                        2322,
                        3
                    ],
                    "start": [
                        2316,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Element:updateText(newText: string, autoresize?: boolean)"
                },
                "file": "modules/Element.lua",
                "finish": [
                    2316,
                    27
                ],
                "name": "updateText",
                "start": [
                    2316,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        107,
                        25
                    ],
                    "start": [
                        107,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                107,
                                24
                            ],
                            "start": [
                                107,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Element.lua",
                "finish": [
                    107,
                    25
                ],
                "name": "userdata",
                "start": [
                    107,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Width of the element",
                "extends": {
                    "finish": [
                        6,
                        29
                    ],
                    "start": [
                        6,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                22
                            ],
                            "start": [
                                6,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                6,
                                29
                            ],
                            "start": [
                                6,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    6,
                    29
                ],
                "name": "width",
                "rawdesc": "Width of the element",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "string|number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "X coordinate of the element",
                "extends": {
                    "finish": [
                        3,
                        25
                    ],
                    "start": [
                        3,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                18
                            ],
                            "start": [
                                3,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                3,
                                25
                            ],
                            "start": [
                                3,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    3,
                    25
                ],
                "name": "x",
                "rawdesc": "X coordinate of the element",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "string|number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Y coordinate of the element",
                "extends": {
                    "finish": [
                        4,
                        25
                    ],
                    "start": [
                        4,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                18
                            ],
                            "start": [
                                4,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                4,
                                25
                            ],
                            "start": [
                                4,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    4,
                    25
                ],
                "name": "y",
                "rawdesc": "Y coordinate of the element",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "string|number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Z-index for layering (default: 0)",
                "extends": {
                    "finish": [
                        5,
                        18
                    ],
                    "start": [
                        5,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                5,
                                18
                            ],
                            "start": [
                                5,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Element.lua",
                "finish": [
                    5,
                    18
                ],
                "name": "z",
                "rawdesc": "Z-index for layering (default: 0)",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            }
        ],
        "name": "Element",
        "type": "type",
        "view": "Element"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "=====================================--\n For Element.lua\n=====================================--",
                "file": "modules/types.lua",
                "finish": [
                    28,
                    22
                ],
                "rawdesc": "=====================================--\n For Element.lua\n=====================================--",
                "start": [
                    28,
                    10
                ],
                "type": "doc.class",
                "view": "ElementProps",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: scroll X position (restored in immediate mode)",
                "extends": {
                    "finish": [
                        116,
                        26
                    ],
                    "start": [
                        116,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                116,
                                25
                            ],
                            "start": [
                                116,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    116,
                    26
                ],
                "name": "_scrollX",
                "rawdesc": "Internal: scroll X position (restored in immediate mode)",
                "start": [
                    116,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: scroll Y position (restored in immediate mode)",
                "extends": {
                    "finish": [
                        117,
                        26
                    ],
                    "start": [
                        117,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                117,
                                25
                            ],
                            "start": [
                                117,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    117,
                    26
                ],
                "name": "_scrollY",
                "rawdesc": "Internal: scroll Y position (restored in immediate mode)",
                "start": [
                    117,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element is active/focused (for inputs, default: false)",
                "extends": {
                    "finish": [
                        79,
                        25
                    ],
                    "start": [
                        79,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                79,
                                24
                            ],
                            "start": [
                                79,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    79,
                    25
                ],
                "name": "active",
                "rawdesc": "Whether the element is active/focused (for inputs, default: false)",
                "start": [
                    79,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of lines in multi-line flex containers (default: STRETCH)",
                "extends": {
                    "finish": [
                        60,
                        36
                    ],
                    "start": [
                        60,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                60,
                                35
                            ],
                            "start": [
                                60,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "AlignContent"
                        }
                    ],
                    "view": "AlignContent?"
                },
                "file": "modules/types.lua",
                "finish": [
                    60,
                    36
                ],
                "name": "alignContent",
                "rawdesc": "Alignment of lines in multi-line flex containers (default: STRETCH)",
                "start": [
                    60,
                    10
                ],
                "type": "doc.field",
                "view": "AlignContent?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along cross axis (default: STRETCH)",
                "extends": {
                    "finish": [
                        59,
                        32
                    ],
                    "start": [
                        59,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                59,
                                31
                            ],
                            "start": [
                                59,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "AlignItems"
                        }
                    ],
                    "view": "AlignItems?"
                },
                "file": "modules/types.lua",
                "finish": [
                    59,
                    32
                ],
                "name": "alignItems",
                "rawdesc": "Alignment of items along cross axis (default: STRETCH)",
                "start": [
                    59,
                    10
                ],
                "type": "doc.field",
                "view": "AlignItems?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of the item itself along cross axis (default: AUTO)",
                "extends": {
                    "finish": [
                        63,
                        30
                    ],
                    "start": [
                        63,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                63,
                                29
                            ],
                            "start": [
                                63,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "AlignSelf"
                        }
                    ],
                    "view": "AlignSelf?"
                },
                "file": "modules/types.lua",
                "finish": [
                    63,
                    30
                ],
                "name": "alignSelf",
                "rawdesc": "Alignment of the item itself along cross axis (default: AUTO)",
                "start": [
                    63,
                    10
                ],
                "type": "doc.field",
                "view": "AlignSelf?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether element auto-grows with text (default: false for single-line, true for multi-line)",
                "extends": {
                    "finish": [
                        96,
                        27
                    ],
                    "start": [
                        96,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                96,
                                26
                            ],
                            "start": [
                                96,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    96,
                    27
                ],
                "name": "autoGrow",
                "rawdesc": "Whether element auto-grows with text (default: false for single-line, true for multi-line)",
                "start": [
                    96,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether text should auto-scale with window size (default: true)",
                "extends": {
                    "finish": [
                        55,
                        32
                    ],
                    "start": [
                        55,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                55,
                                31
                            ],
                            "start": [
                                55,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    55,
                    32
                ],
                "name": "autoScaleText",
                "rawdesc": "Whether text should auto-scale with window size (default: true)",
                "start": [
                    55,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Blur content behind the element (intensity: 0-100, quality: 1-10, default: nil)",
                "extends": {
                    "finish": [
                        85,
                        58
                    ],
                    "start": [
                        85,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        85,
                                        40
                                    ],
                                    "name": {
                                        "[1]": "intensity",
                                        "finish": [
                                            85,
                                            33
                                        ],
                                        "start": [
                                            85,
                                            24
                                        ],
                                        "type": "doc.field.name",
                                        "view": "intensity"
                                    },
                                    "start": [
                                        85,
                                        24
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        85,
                                        56
                                    ],
                                    "name": {
                                        "[1]": "quality",
                                        "finish": [
                                            85,
                                            49
                                        ],
                                        "start": [
                                            85,
                                            42
                                        ],
                                        "type": "doc.field.name",
                                        "view": "quality"
                                    },
                                    "start": [
                                        85,
                                        42
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                85,
                                57
                            ],
                            "start": [
                                85,
                                23
                            ],
                            "type": "doc.type.table",
                            "view": "{ intensity: number, quality: number }"
                        }
                    ],
                    "view": "{ intensity: number, quality: number }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    85,
                    58
                ],
                "name": "backdropBlur",
                "rawdesc": "Blur content behind the element (intensity: 0-100, quality: 1-10, default: nil)",
                "start": [
                    85,
                    10
                ],
                "type": "doc.field",
                "view": "{ intensity: number, quality: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Background color (default: transparent)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        43,
                        32
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        43,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                43,
                                31
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                43,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    43,
                    32
                ],
                "name": "backgroundColor",
                "rawdesc": "Background color (default: transparent)",
                "start": [
                    43,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Border configuration for the element",
                "extends": {
                    "finish": [
                        40,
                        24
                    ],
                    "start": [
                        40,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                40,
                                23
                            ],
                            "start": [
                                40,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "Border"
                        }
                    ],
                    "view": "Border?"
                },
                "file": "modules/types.lua",
                "finish": [
                    40,
                    24
                ],
                "name": "border",
                "rawdesc": "Border configuration for the element",
                "start": [
                    40,
                    10
                ],
                "type": "doc.field",
                "view": "Border?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Color of the border (default: black)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        41,
                        28
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        41,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                41,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                41,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    41,
                    28
                ],
                "name": "borderColor",
                "rawdesc": "Color of the border (default: black)",
                "start": [
                    41,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from bottom edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        38,
                        31
                    ],
                    "start": [
                        38,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                38,
                                23
                            ],
                            "start": [
                                38,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                38,
                                30
                            ],
                            "start": [
                                38,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    38,
                    31
                ],
                "name": "bottom",
                "rawdesc": "Offset from bottom edge (CSS-style positioning)",
                "start": [
                    38,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid columns (default: 0)",
                "extends": {
                    "finish": [
                        74,
                        34
                    ],
                    "start": [
                        74,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                74,
                                26
                            ],
                            "start": [
                                74,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                74,
                                33
                            ],
                            "start": [
                                74,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    74,
                    34
                ],
                "name": "columnGap",
                "rawdesc": "Gap between grid columns (default: 0)",
                "start": [
                    74,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Multiplier for auto-sized content dimensions (default: sourced from theme or {1, 1})",
                "extends": {
                    "finish": [
                        81,
                        70
                    ],
                    "start": [
                        81,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        81,
                                        52
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            81,
                                            44
                                        ],
                                        "start": [
                                            81,
                                            39
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        81,
                                        39
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        81,
                                        68
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            81,
                                            60
                                        ],
                                        "start": [
                                            81,
                                            54
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        81,
                                        54
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                81,
                                69
                            ],
                            "start": [
                                81,
                                38
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number?, height: number? }"
                        }
                    ],
                    "view": "{ width: number?, height: number? }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    81,
                    70
                ],
                "name": "contentAutoSizingMultiplier",
                "rawdesc": "Multiplier for auto-sized content dimensions (default: sourced from theme or {1, 1})",
                "start": [
                    81,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number?, height: number? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Blur the element's content including children (intensity: 0-100, quality: 1-10, default: nil)",
                "extends": {
                    "finish": [
                        84,
                        57
                    ],
                    "start": [
                        84,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        84,
                                        39
                                    ],
                                    "name": {
                                        "[1]": "intensity",
                                        "finish": [
                                            84,
                                            32
                                        ],
                                        "start": [
                                            84,
                                            23
                                        ],
                                        "type": "doc.field.name",
                                        "view": "intensity"
                                    },
                                    "start": [
                                        84,
                                        23
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        84,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "quality",
                                        "finish": [
                                            84,
                                            48
                                        ],
                                        "start": [
                                            84,
                                            41
                                        ],
                                        "type": "doc.field.name",
                                        "view": "quality"
                                    },
                                    "start": [
                                        84,
                                        41
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                84,
                                56
                            ],
                            "start": [
                                84,
                                22
                            ],
                            "type": "doc.type.table",
                            "view": "{ intensity: number, quality: number }"
                        }
                    ],
                    "view": "{ intensity: number, quality: number }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    84,
                    57
                ],
                "name": "contentBlur",
                "rawdesc": "Blur the element's content including children (intensity: 0-100, quality: 1-10, default: nil)",
                "start": [
                    84,
                    10
                ],
                "type": "doc.field",
                "view": "{ intensity: number, quality: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Corner radius: number (all corners) or table for individual corners (default: 0)",
                "extends": {
                    "finish": [
                        44,
                        107
                    ],
                    "start": [
                        44,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                44,
                                29
                            ],
                            "start": [
                                44,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "fields": [
                                {
                                    "finish": [
                                        44,
                                        46
                                    ],
                                    "name": {
                                        "[1]": "topLeft",
                                        "finish": [
                                            44,
                                            38
                                        ],
                                        "start": [
                                            44,
                                            31
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topLeft"
                                    },
                                    "start": [
                                        44,
                                        31
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        44,
                                        64
                                    ],
                                    "name": {
                                        "[1]": "topRight",
                                        "finish": [
                                            44,
                                            56
                                        ],
                                        "start": [
                                            44,
                                            48
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topRight"
                                    },
                                    "start": [
                                        44,
                                        48
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        44,
                                        84
                                    ],
                                    "name": {
                                        "[1]": "bottomLeft",
                                        "finish": [
                                            44,
                                            76
                                        ],
                                        "start": [
                                            44,
                                            66
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomLeft"
                                    },
                                    "start": [
                                        44,
                                        66
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        44,
                                        105
                                    ],
                                    "name": {
                                        "[1]": "bottomRight",
                                        "finish": [
                                            44,
                                            97
                                        ],
                                        "start": [
                                            44,
                                            86
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomRight"
                                    },
                                    "start": [
                                        44,
                                        86
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                44,
                                106
                            ],
                            "start": [
                                44,
                                30
                            ],
                            "type": "doc.type.table",
                            "view": "{ topLeft: number?, topRight: number?, bottomLeft: number?, bottomRight: number? }"
                        }
                    ],
                    "view": "(number|{ topLeft: number?, topRight: number?, bottomLeft: number?, bottomRight: number? })?"
                },
                "file": "modules/types.lua",
                "finish": [
                    44,
                    107
                ],
                "name": "cornerRadius",
                "rawdesc": "Corner radius: number (all corners) or table for individual corners (default: 0)",
                "start": [
                    44,
                    10
                ],
                "type": "doc.field",
                "view": "(number|{ topLeft: number?, topRight: number?, bottomLeft: number?, bottomRight: number? })?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Cursor blink rate in seconds (default: 0.5)",
                "extends": {
                    "finish": [
                        100,
                        33
                    ],
                    "start": [
                        100,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                100,
                                32
                            ],
                            "start": [
                                100,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    100,
                    33
                ],
                "name": "cursorBlinkRate",
                "rawdesc": "Cursor blink rate in seconds (default: 0.5)",
                "start": [
                    100,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Cursor color (default: nil, uses textColor)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        98,
                        28
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        98,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                98,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                98,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    98,
                    28
                ],
                "name": "cursorColor",
                "rawdesc": "Cursor color (default: nil, uses textColor)",
                "start": [
                    98,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to disable the pressed state highlight overlay (default: false, or true when using themeComponent)",
                "extends": {
                    "finish": [
                        80,
                        35
                    ],
                    "start": [
                        80,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                80,
                                34
                            ],
                            "start": [
                                80,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    80,
                    35
                ],
                "name": "disableHighlight",
                "rawdesc": "Whether to disable the pressed state highlight overlay (default: false, or true when using themeComponent)",
                "start": [
                    80,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element is disabled (default: false)",
                "extends": {
                    "finish": [
                        78,
                        27
                    ],
                    "start": [
                        78,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                78,
                                26
                            ],
                            "start": [
                                78,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    78,
                    27
                ],
                "name": "disabled",
                "rawdesc": "Whether the element is disabled (default: false)",
                "start": [
                    78,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element is editable (default: false)",
                "extends": {
                    "finish": [
                        86,
                        27
                    ],
                    "start": [
                        86,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                86,
                                26
                            ],
                            "start": [
                                86,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    86,
                    27
                ],
                "name": "editable",
                "rawdesc": "Whether the element is editable (default: false)",
                "start": [
                    86,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Direction of flex layout: \"horizontal\"|\"vertical\" (default: HORIZONTAL)",
                "extends": {
                    "finish": [
                        57,
                        38
                    ],
                    "start": [
                        57,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                57,
                                37
                            ],
                            "start": [
                                57,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "FlexDirection"
                        }
                    ],
                    "view": "FlexDirection?"
                },
                "file": "modules/types.lua",
                "finish": [
                    57,
                    38
                ],
                "name": "flexDirection",
                "rawdesc": "Direction of flex layout: \"horizontal\"|\"vertical\" (default: HORIZONTAL)",
                "start": [
                    57,
                    10
                ],
                "type": "doc.field",
                "view": "FlexDirection?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether children wrap to multiple lines: \"nowrap\"|\"wrap\"|\"wrap-reverse\" (default: NOWRAP)",
                "extends": {
                    "finish": [
                        61,
                        28
                    ],
                    "start": [
                        61,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                61,
                                27
                            ],
                            "start": [
                                61,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "FlexWrap"
                        }
                    ],
                    "view": "FlexWrap?"
                },
                "file": "modules/types.lua",
                "finish": [
                    61,
                    28
                ],
                "name": "flexWrap",
                "rawdesc": "Whether children wrap to multiple lines: \"nowrap\"|\"wrap\"|\"wrap-reverse\" (default: NOWRAP)",
                "start": [
                    61,
                    10
                ],
                "type": "doc.field",
                "view": "FlexWrap?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Font family name from theme or path to font file (default: theme default or system default, inherits from parent)",
                "extends": {
                    "finish": [
                        54,
                        28
                    ],
                    "start": [
                        54,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                54,
                                27
                            ],
                            "start": [
                                54,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    54,
                    28
                ],
                "name": "fontFamily",
                "rawdesc": "Font family name from theme or path to font file (default: theme default or system default, inherits from parent)",
                "start": [
                    54,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Space between children elements (default: 0)",
                "extends": {
                    "finish": [
                        45,
                        28
                    ],
                    "start": [
                        45,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                45,
                                20
                            ],
                            "start": [
                                45,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                45,
                                27
                            ],
                            "start": [
                                45,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    45,
                    28
                ],
                "name": "gap",
                "rawdesc": "Space between children elements (default: 0)",
                "start": [
                    45,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of columns in the grid (default: 1)",
                "extends": {
                    "finish": [
                        73,
                        29
                    ],
                    "start": [
                        73,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                73,
                                28
                            ],
                            "start": [
                                73,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    73,
                    29
                ],
                "name": "gridColumns",
                "rawdesc": "Number of columns in the grid (default: 1)",
                "start": [
                    73,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of rows in the grid (default: 1)",
                "extends": {
                    "finish": [
                        72,
                        26
                    ],
                    "start": [
                        72,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                72,
                                25
                            ],
                            "start": [
                                72,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    72,
                    26
                ],
                "name": "gridRows",
                "rawdesc": "Number of rows in the grid (default: 1)",
                "start": [
                    72,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Height of the element (default: calculated automatically)",
                "extends": {
                    "finish": [
                        35,
                        31
                    ],
                    "start": [
                        35,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                35,
                                23
                            ],
                            "start": [
                                35,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                35,
                                30
                            ],
                            "start": [
                                35,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    35,
                    31
                ],
                "name": "height",
                "rawdesc": "Height of the element (default: calculated automatically)",
                "start": [
                    35,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Hide scrollbars (boolean for both, or table for individual control, default: false)",
                "extends": {
                    "finish": [
                        110,
                        72
                    ],
                    "start": [
                        110,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                110,
                                32
                            ],
                            "start": [
                                110,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        },
                        {
                            "fields": [
                                {
                                    "finish": [
                                        110,
                                        50
                                    ],
                                    "name": {
                                        "[1]": "vertical",
                                        "finish": [
                                            110,
                                            42
                                        ],
                                        "start": [
                                            110,
                                            34
                                        ],
                                        "type": "doc.field.name",
                                        "view": "vertical"
                                    },
                                    "start": [
                                        110,
                                        34
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        110,
                                        70
                                    ],
                                    "name": {
                                        "[1]": "horizontal",
                                        "finish": [
                                            110,
                                            62
                                        ],
                                        "start": [
                                            110,
                                            52
                                        ],
                                        "type": "doc.field.name",
                                        "view": "horizontal"
                                    },
                                    "start": [
                                        110,
                                        52
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                }
                            ],
                            "finish": [
                                110,
                                71
                            ],
                            "start": [
                                110,
                                33
                            ],
                            "type": "doc.type.table",
                            "view": "{ vertical: boolean, horizontal: boolean }"
                        }
                    ],
                    "view": "(boolean|{ vertical: boolean, horizontal: boolean })?"
                },
                "file": "modules/types.lua",
                "finish": [
                    110,
                    72
                ],
                "name": "hideScrollbars",
                "rawdesc": "Hide scrollbars (boolean for both, or table for individual control, default: false)",
                "start": [
                    110,
                    10
                ],
                "type": "doc.field",
                "view": "(boolean|{ vertical: boolean, horizontal: boolean })?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Unique identifier for the element (auto-generated in immediate mode if not provided)",
                "extends": {
                    "finish": [
                        29,
                        20
                    ],
                    "start": [
                        29,
                        13
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                29,
                                19
                            ],
                            "start": [
                                29,
                                13
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    29,
                    20
                ],
                "name": "id",
                "rawdesc": "Unique identifier for the element (auto-generated in immediate mode if not provided)",
                "start": [
                    29,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image object to display",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        112,
                        27
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        112,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                112,
                                26
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                112,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(love.Image)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    112,
                    27
                ],
                "name": "image",
                "rawdesc": "Image object to display",
                "start": [
                    112,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image opacity 0-1 (default: 1, combines with element opacity)",
                "extends": {
                    "finish": [
                        115,
                        30
                    ],
                    "start": [
                        115,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                115,
                                29
                            ],
                            "start": [
                                115,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    115,
                    30
                ],
                "name": "imageOpacity",
                "rawdesc": "Image opacity 0-1 (default: 1, combines with element opacity)",
                "start": [
                    115,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Path to image file (auto-loads via ImageCache)",
                "extends": {
                    "finish": [
                        111,
                        27
                    ],
                    "start": [
                        111,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                111,
                                26
                            ],
                            "start": [
                                111,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    111,
                    27
                ],
                "name": "imagePath",
                "rawdesc": "Path to image file (auto-loads via ImageCache)",
                "start": [
                    111,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Input type for validation (default: \"text\")",
                "extends": {
                    "finish": [
                        93,
                        50
                    ],
                    "start": [
                        93,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                93,
                                26
                            ],
                            "start": [
                                93,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"text\""
                        },
                        {
                            "finish": [
                                93,
                                35
                            ],
                            "start": [
                                93,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"number\""
                        },
                        {
                            "finish": [
                                93,
                                43
                            ],
                            "start": [
                                93,
                                36
                            ],
                            "type": "doc.type.string",
                            "view": "\"email\""
                        },
                        {
                            "finish": [
                                93,
                                49
                            ],
                            "start": [
                                93,
                                44
                            ],
                            "type": "doc.type.string",
                            "view": "\"url\""
                        }
                    ],
                    "view": "(\"email\"|\"number\"|\"text\"|\"url\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    93,
                    50
                ],
                "name": "inputType",
                "rawdesc": "Input type for validation (default: \"text\")",
                "start": [
                    93,
                    10
                ],
                "type": "doc.field",
                "view": "(\"email\"|\"number\"|\"text\"|\"url\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along main axis (default: FLEX_START)",
                "extends": {
                    "finish": [
                        58,
                        40
                    ],
                    "start": [
                        58,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                58,
                                39
                            ],
                            "start": [
                                58,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "JustifyContent"
                        }
                    ],
                    "view": "JustifyContent?"
                },
                "file": "modules/types.lua",
                "finish": [
                    58,
                    40
                ],
                "name": "justifyContent",
                "rawdesc": "Alignment of items along main axis (default: FLEX_START)",
                "start": [
                    58,
                    10
                ],
                "type": "doc.field",
                "view": "JustifyContent?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of the item itself along main axis (default: AUTO)",
                "extends": {
                    "finish": [
                        62,
                        34
                    ],
                    "start": [
                        62,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                62,
                                33
                            ],
                            "start": [
                                62,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "JustifySelf"
                        }
                    ],
                    "view": "JustifySelf?"
                },
                "file": "modules/types.lua",
                "finish": [
                    62,
                    34
                ],
                "name": "justifySelf",
                "rawdesc": "Alignment of the item itself along main axis (default: AUTO)",
                "start": [
                    62,
                    10
                ],
                "type": "doc.field",
                "view": "JustifySelf?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from left edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        39,
                        29
                    ],
                    "start": [
                        39,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                39,
                                21
                            ],
                            "start": [
                                39,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                39,
                                28
                            ],
                            "start": [
                                39,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    39,
                    29
                ],
                "name": "left",
                "rawdesc": "Offset from left edge (CSS-style positioning)",
                "start": [
                    39,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Margin around element (default: {top=0, right=0, bottom=0, left=0})",
                "extends": {
                    "finish": [
                        47,
                        156
                    ],
                    "start": [
                        47,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        47,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "top",
                                        "finish": [
                                            47,
                                            21
                                        ],
                                        "start": [
                                            47,
                                            18
                                        ],
                                        "type": "doc.field.name",
                                        "view": "top"
                                    },
                                    "start": [
                                        47,
                                        18
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        47,
                                        58
                                    ],
                                    "name": {
                                        "[1]": "right",
                                        "finish": [
                                            47,
                                            43
                                        ],
                                        "start": [
                                            47,
                                            38
                                        ],
                                        "type": "doc.field.name",
                                        "view": "right"
                                    },
                                    "start": [
                                        47,
                                        38
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        47,
                                        81
                                    ],
                                    "name": {
                                        "[1]": "bottom",
                                        "finish": [
                                            47,
                                            66
                                        ],
                                        "start": [
                                            47,
                                            60
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottom"
                                    },
                                    "start": [
                                        47,
                                        60
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        47,
                                        102
                                    ],
                                    "name": {
                                        "[1]": "left",
                                        "finish": [
                                            47,
                                            87
                                        ],
                                        "start": [
                                            47,
                                            83
                                        ],
                                        "type": "doc.field.name",
                                        "view": "left"
                                    },
                                    "start": [
                                        47,
                                        83
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        47,
                                        129
                                    ],
                                    "name": {
                                        "[1]": "horizontal",
                                        "finish": [
                                            47,
                                            114
                                        ],
                                        "start": [
                                            47,
                                            104
                                        ],
                                        "type": "doc.field.name",
                                        "view": "horizontal"
                                    },
                                    "start": [
                                        47,
                                        104
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        47,
                                        154
                                    ],
                                    "name": {
                                        "[1]": "vertical",
                                        "finish": [
                                            47,
                                            139
                                        ],
                                        "start": [
                                            47,
                                            131
                                        ],
                                        "type": "doc.field.name",
                                        "view": "vertical"
                                    },
                                    "start": [
                                        47,
                                        131
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                }
                            ],
                            "finish": [
                                47,
                                155
                            ],
                            "start": [
                                47,
                                17
                            ],
                            "type": "doc.type.table",
                            "view": "{ top: (string|number)?, right: (string|number)?, bottom: (string|number)?, left: (string|number)?, horizontal: (string|number)?, vertical: (string|number)? }"
                        }
                    ],
                    "view": "{ top: (string|number)?, right: (string|number)?, bottom: (string|number)?, left: (string|number)?, horizontal: (string|number)?, vertical: (string|number)? }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    47,
                    156
                ],
                "name": "margin",
                "rawdesc": "Margin around element (default: {top=0, right=0, bottom=0, left=0})",
                "start": [
                    47,
                    10
                ],
                "type": "doc.field",
                "view": "{ top: (string|number)?, right: (string|number)?, bottom: (string|number)?, left: (string|number)?, horizontal: (string|number)?, vertical: (string|number)? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum text length in characters (default: nil)",
                "extends": {
                    "finish": [
                        90,
                        27
                    ],
                    "start": [
                        90,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                90,
                                26
                            ],
                            "start": [
                                90,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    90,
                    27
                ],
                "name": "maxLength",
                "rawdesc": "Maximum text length in characters (default: nil)",
                "start": [
                    90,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum number of lines (default: nil)",
                "extends": {
                    "finish": [
                        89,
                        26
                    ],
                    "start": [
                        89,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                89,
                                25
                            ],
                            "start": [
                                89,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    89,
                    26
                ],
                "name": "maxLines",
                "rawdesc": "Maximum number of lines (default: nil)",
                "start": [
                    89,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum text size in pixels for auto-scaling",
                "extends": {
                    "finish": [
                        53,
                        29
                    ],
                    "start": [
                        53,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                53,
                                28
                            ],
                            "start": [
                                53,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    53,
                    29
                ],
                "name": "maxTextSize",
                "rawdesc": "Maximum text size in pixels for auto-scaling",
                "start": [
                    53,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Minimum text size in pixels for auto-scaling",
                "extends": {
                    "finish": [
                        52,
                        29
                    ],
                    "start": [
                        52,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                52,
                                28
                            ],
                            "start": [
                                52,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    52,
                    29
                ],
                "name": "minTextSize",
                "rawdesc": "Minimum text size in pixels for auto-scaling",
                "start": [
                    52,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether the element supports multiple lines (default: false)",
                "extends": {
                    "finish": [
                        87,
                        28
                    ],
                    "start": [
                        87,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                87,
                                27
                            ],
                            "start": [
                                87,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    87,
                    28
                ],
                "name": "multiline",
                "rawdesc": "Whether the element supports multiple lines (default: false)",
                "start": [
                    87,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image fit mode (default: \"fill\")",
                "extends": {
                    "finish": [
                        113,
                        65
                    ],
                    "start": [
                        113,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                113,
                                26
                            ],
                            "start": [
                                113,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"fill\""
                        },
                        {
                            "finish": [
                                113,
                                36
                            ],
                            "start": [
                                113,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"contain\""
                        },
                        {
                            "finish": [
                                113,
                                44
                            ],
                            "start": [
                                113,
                                37
                            ],
                            "type": "doc.type.string",
                            "view": "\"cover\""
                        },
                        {
                            "finish": [
                                113,
                                57
                            ],
                            "start": [
                                113,
                                45
                            ],
                            "type": "doc.type.string",
                            "view": "\"scale-down\""
                        },
                        {
                            "finish": [
                                113,
                                64
                            ],
                            "start": [
                                113,
                                58
                            ],
                            "type": "doc.type.string",
                            "view": "\"none\""
                        }
                    ],
                    "view": "(\"contain\"|\"cover\"|\"fill\"|\"none\"|\"scale-down\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    113,
                    65
                ],
                "name": "objectFit",
                "rawdesc": "Image fit mode (default: \"fill\")",
                "start": [
                    113,
                    10
                ],
                "type": "doc.field",
                "view": "(\"contain\"|\"cover\"|\"fill\"|\"none\"|\"scale-down\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Image position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                "extends": {
                    "finish": [
                        114,
                        32
                    ],
                    "start": [
                        114,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                114,
                                31
                            ],
                            "start": [
                                114,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    114,
                    32
                ],
                "name": "objectPosition",
                "rawdesc": "Image position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                "start": [
                    114,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback when element loses focus",
                "extends": {
                    "finish": [
                        66,
                        56
                    ],
                    "start": [
                        66,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        66,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            66,
                                            28
                                        ],
                                        "start": [
                                            66,
                                            21
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        66,
                                        21
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        66,
                                        54
                                    ],
                                    "name": {
                                        "[1]": "event",
                                        "finish": [
                                            66,
                                            43
                                        ],
                                        "start": [
                                            66,
                                            38
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "event"
                                    },
                                    "start": [
                                        66,
                                        38
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "InputEvent"
                                }
                            ],
                            "finish": [
                                66,
                                55
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                66,
                                17
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, event: InputEvent)"
                        }
                    ],
                    "view": "fun(element: Element, event: InputEvent)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    66,
                    56
                ],
                "name": "onBlur",
                "rawdesc": "Callback when element loses focus",
                "start": [
                    66,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, event: InputEvent)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback when Enter key is pressed",
                "extends": {
                    "finish": [
                        69,
                        39
                    ],
                    "start": [
                        69,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        69,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            69,
                                            29
                                        ],
                                        "start": [
                                            69,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        69,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                69,
                                38
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                69,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    69,
                    39
                ],
                "name": "onEnter",
                "rawdesc": "Callback when Enter key is pressed",
                "start": [
                    69,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback function for interaction events",
                "extends": {
                    "finish": [
                        64,
                        57
                    ],
                    "start": [
                        64,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        64,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            64,
                                            29
                                        ],
                                        "start": [
                                            64,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        64,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        64,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "event",
                                        "finish": [
                                            64,
                                            44
                                        ],
                                        "start": [
                                            64,
                                            39
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "event"
                                    },
                                    "start": [
                                        64,
                                        39
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "InputEvent"
                                }
                            ],
                            "finish": [
                                64,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                64,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, event: InputEvent)"
                        }
                    ],
                    "view": "fun(element: Element, event: InputEvent)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    64,
                    57
                ],
                "name": "onEvent",
                "rawdesc": "Callback function for interaction events",
                "start": [
                    64,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, event: InputEvent)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback when element receives focus",
                "extends": {
                    "finish": [
                        65,
                        57
                    ],
                    "start": [
                        65,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        65,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            65,
                                            29
                                        ],
                                        "start": [
                                            65,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        65,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        65,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "event",
                                        "finish": [
                                            65,
                                            44
                                        ],
                                        "start": [
                                            65,
                                            39
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "event"
                                    },
                                    "start": [
                                        65,
                                        39
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "InputEvent"
                                }
                            ],
                            "finish": [
                                65,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                65,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, event: InputEvent)"
                        }
                    ],
                    "view": "fun(element: Element, event: InputEvent)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    65,
                    57
                ],
                "name": "onFocus",
                "rawdesc": "Callback when element receives focus",
                "start": [
                    65,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, event: InputEvent)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback when text content changes",
                "extends": {
                    "finish": [
                        68,
                        57
                    ],
                    "start": [
                        68,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        68,
                                        42
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            68,
                                            34
                                        ],
                                        "start": [
                                            68,
                                            27
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        68,
                                        27
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        68,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "text",
                                        "finish": [
                                            68,
                                            48
                                        ],
                                        "start": [
                                            68,
                                            44
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "text"
                                    },
                                    "start": [
                                        68,
                                        44
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                68,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                68,
                                23
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, text: string)"
                        }
                    ],
                    "view": "fun(element: Element, text: string)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    68,
                    57
                ],
                "name": "onTextChange",
                "rawdesc": "Callback when text content changes",
                "start": [
                    68,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, text: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Callback when text is input",
                "extends": {
                    "finish": [
                        67,
                        56
                    ],
                    "start": [
                        67,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        67,
                                        41
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            67,
                                            33
                                        ],
                                        "start": [
                                            67,
                                            26
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        67,
                                        26
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        67,
                                        54
                                    ],
                                    "name": {
                                        "[1]": "text",
                                        "finish": [
                                            67,
                                            47
                                        ],
                                        "start": [
                                            67,
                                            43
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "text"
                                    },
                                    "start": [
                                        67,
                                        43
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                67,
                                55
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                67,
                                22
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, text: string)"
                        }
                    ],
                    "view": "fun(element: Element, text: string)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    67,
                    56
                ],
                "name": "onTextInput",
                "rawdesc": "Callback when text is input",
                "start": [
                    67,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, text: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Element opacity 0-1 (default: 1)",
                "extends": {
                    "finish": [
                        42,
                        25
                    ],
                    "start": [
                        42,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                42,
                                24
                            ],
                            "start": [
                                42,
                                18
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    42,
                    25
                ],
                "name": "opacity",
                "rawdesc": "Element opacity 0-1 (default: 1)",
                "start": [
                    42,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Overflow behavior (default: \"hidden\")",
                "extends": {
                    "finish": [
                        101,
                        54
                    ],
                    "start": [
                        101,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                101,
                                28
                            ],
                            "start": [
                                101,
                                19
                            ],
                            "type": "doc.type.string",
                            "view": "\"visible\""
                        },
                        {
                            "finish": [
                                101,
                                37
                            ],
                            "start": [
                                101,
                                29
                            ],
                            "type": "doc.type.string",
                            "view": "\"hidden\""
                        },
                        {
                            "finish": [
                                101,
                                46
                            ],
                            "start": [
                                101,
                                38
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        },
                        {
                            "finish": [
                                101,
                                53
                            ],
                            "start": [
                                101,
                                47
                            ],
                            "type": "doc.type.string",
                            "view": "\"auto\""
                        }
                    ],
                    "view": "(\"auto\"|\"hidden\"|\"scroll\"|\"visible\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    101,
                    54
                ],
                "name": "overflow",
                "rawdesc": "Overflow behavior (default: \"hidden\")",
                "start": [
                    101,
                    10
                ],
                "type": "doc.field",
                "view": "(\"auto\"|\"hidden\"|\"scroll\"|\"visible\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "X-axis overflow (overrides overflow)",
                "extends": {
                    "finish": [
                        102,
                        55
                    ],
                    "start": [
                        102,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                102,
                                29
                            ],
                            "start": [
                                102,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"visible\""
                        },
                        {
                            "finish": [
                                102,
                                38
                            ],
                            "start": [
                                102,
                                30
                            ],
                            "type": "doc.type.string",
                            "view": "\"hidden\""
                        },
                        {
                            "finish": [
                                102,
                                47
                            ],
                            "start": [
                                102,
                                39
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        },
                        {
                            "finish": [
                                102,
                                54
                            ],
                            "start": [
                                102,
                                48
                            ],
                            "type": "doc.type.string",
                            "view": "\"auto\""
                        }
                    ],
                    "view": "(\"auto\"|\"hidden\"|\"scroll\"|\"visible\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    102,
                    55
                ],
                "name": "overflowX",
                "rawdesc": "X-axis overflow (overrides overflow)",
                "start": [
                    102,
                    10
                ],
                "type": "doc.field",
                "view": "(\"auto\"|\"hidden\"|\"scroll\"|\"visible\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Y-axis overflow (overrides overflow)",
                "extends": {
                    "finish": [
                        103,
                        55
                    ],
                    "start": [
                        103,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                103,
                                29
                            ],
                            "start": [
                                103,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"visible\""
                        },
                        {
                            "finish": [
                                103,
                                38
                            ],
                            "start": [
                                103,
                                30
                            ],
                            "type": "doc.type.string",
                            "view": "\"hidden\""
                        },
                        {
                            "finish": [
                                103,
                                47
                            ],
                            "start": [
                                103,
                                39
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        },
                        {
                            "finish": [
                                103,
                                54
                            ],
                            "start": [
                                103,
                                48
                            ],
                            "type": "doc.type.string",
                            "view": "\"auto\""
                        }
                    ],
                    "view": "(\"auto\"|\"hidden\"|\"scroll\"|\"visible\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    103,
                    55
                ],
                "name": "overflowY",
                "rawdesc": "Y-axis overflow (overrides overflow)",
                "start": [
                    103,
                    10
                ],
                "type": "doc.field",
                "view": "(\"auto\"|\"hidden\"|\"scroll\"|\"visible\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Padding around children (default: {top=0, right=0, bottom=0, left=0})",
                "extends": {
                    "finish": [
                        46,
                        157
                    ],
                    "start": [
                        46,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        46,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "top",
                                        "finish": [
                                            46,
                                            22
                                        ],
                                        "start": [
                                            46,
                                            19
                                        ],
                                        "type": "doc.field.name",
                                        "view": "top"
                                    },
                                    "start": [
                                        46,
                                        19
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        46,
                                        59
                                    ],
                                    "name": {
                                        "[1]": "right",
                                        "finish": [
                                            46,
                                            44
                                        ],
                                        "start": [
                                            46,
                                            39
                                        ],
                                        "type": "doc.field.name",
                                        "view": "right"
                                    },
                                    "start": [
                                        46,
                                        39
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        46,
                                        82
                                    ],
                                    "name": {
                                        "[1]": "bottom",
                                        "finish": [
                                            46,
                                            67
                                        ],
                                        "start": [
                                            46,
                                            61
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottom"
                                    },
                                    "start": [
                                        46,
                                        61
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        46,
                                        103
                                    ],
                                    "name": {
                                        "[1]": "left",
                                        "finish": [
                                            46,
                                            88
                                        ],
                                        "start": [
                                            46,
                                            84
                                        ],
                                        "type": "doc.field.name",
                                        "view": "left"
                                    },
                                    "start": [
                                        46,
                                        84
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        46,
                                        130
                                    ],
                                    "name": {
                                        "[1]": "horizontal",
                                        "finish": [
                                            46,
                                            115
                                        ],
                                        "start": [
                                            46,
                                            105
                                        ],
                                        "type": "doc.field.name",
                                        "view": "horizontal"
                                    },
                                    "start": [
                                        46,
                                        105
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                },
                                {
                                    "finish": [
                                        46,
                                        155
                                    ],
                                    "name": {
                                        "[1]": "vertical",
                                        "finish": [
                                            46,
                                            140
                                        ],
                                        "start": [
                                            46,
                                            132
                                        ],
                                        "type": "doc.field.name",
                                        "view": "vertical"
                                    },
                                    "start": [
                                        46,
                                        132
                                    ],
                                    "type": "doc.type.field",
                                    "view": "(string|number)?"
                                }
                            ],
                            "finish": [
                                46,
                                156
                            ],
                            "start": [
                                46,
                                18
                            ],
                            "type": "doc.type.table",
                            "view": "{ top: (string|number)?, right: (string|number)?, bottom: (string|number)?, left: (string|number)?, horizontal: (string|number)?, vertical: (string|number)? }"
                        }
                    ],
                    "view": "{ top: (string|number)?, right: (string|number)?, bottom: (string|number)?, left: (string|number)?, horizontal: (string|number)?, vertical: (string|number)? }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    46,
                    157
                ],
                "name": "padding",
                "rawdesc": "Padding around children (default: {top=0, right=0, bottom=0, left=0})",
                "start": [
                    46,
                    10
                ],
                "type": "doc.field",
                "view": "{ top: (string|number)?, right: (string|number)?, bottom: (string|number)?, left: (string|number)?, horizontal: (string|number)?, vertical: (string|number)? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Parent element for hierarchical structure",
                "extends": {
                    "finish": [
                        30,
                        25
                    ],
                    "start": [
                        30,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                30,
                                24
                            ],
                            "start": [
                                30,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/types.lua",
                "finish": [
                    30,
                    25
                ],
                "name": "parent",
                "rawdesc": "Parent element for hierarchical structure",
                "start": [
                    30,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to display text as password (default: false, disables multiline)",
                "extends": {
                    "finish": [
                        92,
                        31
                    ],
                    "start": [
                        92,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                92,
                                30
                            ],
                            "start": [
                                92,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    92,
                    31
                ],
                "name": "passwordMode",
                "rawdesc": "Whether to display text as password (default: false, disables multiline)",
                "start": [
                    92,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Placeholder text when empty (default: nil)",
                "extends": {
                    "finish": [
                        91,
                        29
                    ],
                    "start": [
                        91,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                91,
                                28
                            ],
                            "start": [
                                91,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    91,
                    29
                ],
                "name": "placeholder",
                "rawdesc": "Placeholder text when empty (default: nil)",
                "start": [
                    91,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Layout positioning mode: \"absolute\"|\"relative\"|\"flex\"|\"grid\" (default: RELATIVE)",
                "extends": {
                    "finish": [
                        56,
                        34
                    ],
                    "start": [
                        56,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                56,
                                33
                            ],
                            "start": [
                                56,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Positioning"
                        }
                    ],
                    "view": "Positioning?"
                },
                "file": "modules/types.lua",
                "finish": [
                    56,
                    34
                ],
                "name": "positioning",
                "rawdesc": "Layout positioning mode: \"absolute\"|\"relative\"|\"flex\"|\"grid\" (default: RELATIVE)",
                "start": [
                    56,
                    10
                ],
                "type": "doc.field",
                "view": "Positioning?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from right edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        37,
                        30
                    ],
                    "start": [
                        37,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                37,
                                22
                            ],
                            "start": [
                                37,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                37,
                                29
                            ],
                            "start": [
                                37,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    37,
                    30
                ],
                "name": "right",
                "rawdesc": "Offset from right edge (CSS-style positioning)",
                "start": [
                    37,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid rows (default: 0)",
                "extends": {
                    "finish": [
                        75,
                        31
                    ],
                    "start": [
                        75,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                75,
                                23
                            ],
                            "start": [
                                75,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                75,
                                30
                            ],
                            "start": [
                                75,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    75,
                    31
                ],
                "name": "rowGap",
                "rawdesc": "Gap between grid rows (default: 0)",
                "start": [
                    75,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scale multiplier for 9-patch corners/edges. E.g., 2 = 2x size (overrides theme setting)",
                "extends": {
                    "finish": [
                        82,
                        30
                    ],
                    "start": [
                        82,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                82,
                                29
                            ],
                            "start": [
                                82,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    82,
                    30
                ],
                "name": "scaleCorners",
                "rawdesc": "Scale multiplier for 9-patch corners/edges. E.g., 2 = 2x size (overrides theme setting)",
                "start": [
                    82,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scaling algorithm for 9-patch corners: \"nearest\" (sharp/pixelated) or \"bilinear\" (smooth) (overrides theme setting)",
                "extends": {
                    "finish": [
                        83,
                        48
                    ],
                    "start": [
                        83,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                83,
                                36
                            ],
                            "start": [
                                83,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"nearest\""
                        },
                        {
                            "finish": [
                                83,
                                47
                            ],
                            "start": [
                                83,
                                37
                            ],
                            "type": "doc.type.string",
                            "view": "\"bilinear\""
                        }
                    ],
                    "view": "(\"bilinear\"|\"nearest\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    83,
                    48
                ],
                "name": "scalingAlgorithm",
                "rawdesc": "Scaling algorithm for 9-patch corners: \"nearest\" (sharp/pixelated) or \"bilinear\" (smooth) (overrides theme setting)",
                "start": [
                    83,
                    10
                ],
                "type": "doc.field",
                "view": "(\"bilinear\"|\"nearest\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Pixels per wheel notch (default: 20)",
                "extends": {
                    "finish": [
                        109,
                        29
                    ],
                    "start": [
                        109,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                109,
                                28
                            ],
                            "start": [
                                109,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    109,
                    29
                ],
                "name": "scrollSpeed",
                "rawdesc": "Pixels per wheel notch (default: 20)",
                "start": [
                    109,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether text is scrollable (default: false for single-line, true for multi-line)",
                "extends": {
                    "finish": [
                        95,
                        29
                    ],
                    "start": [
                        95,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                95,
                                28
                            ],
                            "start": [
                                95,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    95,
                    29
                ],
                "name": "scrollable",
                "rawdesc": "Whether text is scrollable (default: false for single-line, true for multi-line)",
                "start": [
                    95,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar thumb color (default: Color.new(0.5, 0.5, 0.5, 0.8))",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        105,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        105,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                105,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                105,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    105,
                    31
                ],
                "name": "scrollbarColor",
                "rawdesc": "Scrollbar thumb color (default: Color.new(0.5, 0.5, 0.5, 0.8))",
                "start": [
                    105,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Padding between scrollbar and edge (default: 2)",
                "extends": {
                    "finish": [
                        108,
                        34
                    ],
                    "start": [
                        108,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                108,
                                33
                            ],
                            "start": [
                                108,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    108,
                    34
                ],
                "name": "scrollbarPadding",
                "rawdesc": "Padding between scrollbar and edge (default: 2)",
                "start": [
                    108,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Corner radius for scrollbar (default: 6)",
                "extends": {
                    "finish": [
                        107,
                        33
                    ],
                    "start": [
                        107,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                107,
                                32
                            ],
                            "start": [
                                107,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    107,
                    33
                ],
                "name": "scrollbarRadius",
                "rawdesc": "Corner radius for scrollbar (default: 6)",
                "start": [
                    107,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar track color (default: Color.new(0.2, 0.2, 0.2, 0.5))",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        106,
                        36
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        106,
                        30
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                106,
                                35
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                106,
                                30
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    106,
                    36
                ],
                "name": "scrollbarTrackColor",
                "rawdesc": "Scrollbar track color (default: Color.new(0.2, 0.2, 0.2, 0.5))",
                "start": [
                    106,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Width of scrollbar track in pixels (default: 12)",
                "extends": {
                    "finish": [
                        104,
                        32
                    ],
                    "start": [
                        104,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                104,
                                31
                            ],
                            "start": [
                                104,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    104,
                    32
                ],
                "name": "scrollbarWidth",
                "rawdesc": "Width of scrollbar track in pixels (default: 12)",
                "start": [
                    104,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to select all text on focus (default: false)",
                "extends": {
                    "finish": [
                        97,
                        32
                    ],
                    "start": [
                        97,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                97,
                                31
                            ],
                            "start": [
                                97,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/types.lua",
                "finish": [
                    97,
                    32
                ],
                "name": "selectOnFocus",
                "rawdesc": "Whether to select all text on focus (default: false)",
                "start": [
                    97,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Selection background color (default: nil, uses theme or default)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        99,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        99,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                99,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                99,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    99,
                    31
                ],
                "name": "selectionColor",
                "rawdesc": "Selection background color (default: nil, uses theme or default)",
                "start": [
                    99,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text content to display (default: nil)",
                "extends": {
                    "finish": [
                        48,
                        22
                    ],
                    "start": [
                        48,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                48,
                                21
                            ],
                            "start": [
                                48,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    48,
                    22
                ],
                "name": "text",
                "rawdesc": "Text content to display (default: nil)",
                "start": [
                    48,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of the text content (default: START)",
                "extends": {
                    "finish": [
                        49,
                        30
                    ],
                    "start": [
                        49,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                49,
                                29
                            ],
                            "start": [
                                49,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "TextAlign"
                        }
                    ],
                    "view": "TextAlign?"
                },
                "file": "modules/types.lua",
                "finish": [
                    49,
                    30
                ],
                "name": "textAlign",
                "rawdesc": "Alignment of the text content (default: START)",
                "start": [
                    49,
                    10
                ],
                "type": "doc.field",
                "view": "TextAlign?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Color of the text content (default: black or theme text color)",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        50,
                        26
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        50,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                50,
                                25
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                50,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/types.lua",
                "finish": [
                    50,
                    26
                ],
                "name": "textColor",
                "rawdesc": "Color of the text content (default: black or theme text color)",
                "start": [
                    50,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text overflow behavior (default: \"clip\")",
                "extends": {
                    "finish": [
                        94,
                        50
                    ],
                    "start": [
                        94,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                94,
                                29
                            ],
                            "start": [
                                94,
                                23
                            ],
                            "type": "doc.type.string",
                            "view": "\"clip\""
                        },
                        {
                            "finish": [
                                94,
                                40
                            ],
                            "start": [
                                94,
                                30
                            ],
                            "type": "doc.type.string",
                            "view": "\"ellipsis\""
                        },
                        {
                            "finish": [
                                94,
                                49
                            ],
                            "start": [
                                94,
                                41
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        }
                    ],
                    "view": "(\"clip\"|\"ellipsis\"|\"scroll\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    94,
                    50
                ],
                "name": "textOverflow",
                "rawdesc": "Text overflow behavior (default: \"clip\")",
                "start": [
                    94,
                    10
                ],
                "type": "doc.field",
                "view": "(\"clip\"|\"ellipsis\"|\"scroll\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Font size: number (px), string with units (\"2vh\", \"10%\"), or preset (\"xxs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"xxl\"|\"3xl\"|\"4xl\") (default: \"md\" or 12px)",
                "extends": {
                    "finish": [
                        51,
                        33
                    ],
                    "start": [
                        51,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                51,
                                25
                            ],
                            "start": [
                                51,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                51,
                                32
                            ],
                            "start": [
                                51,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    51,
                    33
                ],
                "name": "textSize",
                "rawdesc": "Font size: number (px), string with units (\"2vh\", \"10%\"), or preset (\"xxs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"xxl\"|\"3xl\"|\"4xl\") (default: \"md\" or 12px)",
                "start": [
                    51,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text wrapping mode (default: false for single-line, \"word\" for multi-line)",
                "extends": {
                    "finish": [
                        88,
                        41
                    ],
                    "start": [
                        88,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                88,
                                26
                            ],
                            "start": [
                                88,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        },
                        {
                            "finish": [
                                88,
                                33
                            ],
                            "start": [
                                88,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"word\""
                        },
                        {
                            "finish": [
                                88,
                                40
                            ],
                            "start": [
                                88,
                                34
                            ],
                            "type": "doc.type.string",
                            "view": "\"char\""
                        }
                    ],
                    "view": "(boolean|\"char\"|\"word\")?"
                },
                "file": "modules/types.lua",
                "finish": [
                    88,
                    41
                ],
                "name": "textWrap",
                "rawdesc": "Text wrapping mode (default: false for single-line, \"word\" for multi-line)",
                "start": [
                    88,
                    10
                ],
                "type": "doc.field",
                "view": "(boolean|\"char\"|\"word\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Theme name to use (e.g., \"space\", \"metal\"). Defaults to theme from flexlove.init()",
                "extends": {
                    "finish": [
                        76,
                        23
                    ],
                    "start": [
                        76,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                76,
                                22
                            ],
                            "start": [
                                76,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    76,
                    23
                ],
                "name": "theme",
                "rawdesc": "Theme name to use (e.g., \"space\", \"metal\"). Defaults to theme from flexlove.init()",
                "start": [
                    76,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Theme component to use (e.g., \"panel\", \"button\", \"input\"). If nil, no theme is applied",
                "extends": {
                    "finish": [
                        77,
                        32
                    ],
                    "start": [
                        77,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                77,
                                31
                            ],
                            "start": [
                                77,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    77,
                    32
                ],
                "name": "themeComponent",
                "rawdesc": "Theme component to use (e.g., \"panel\", \"button\", \"input\"). If nil, no theme is applied",
                "start": [
                    77,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from top edge (CSS-style positioning)",
                "extends": {
                    "finish": [
                        36,
                        28
                    ],
                    "start": [
                        36,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                36,
                                20
                            ],
                            "start": [
                                36,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                36,
                                27
                            ],
                            "start": [
                                36,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    36,
                    28
                ],
                "name": "top",
                "rawdesc": "Offset from top edge (CSS-style positioning)",
                "start": [
                    36,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Transform properties for animations and styling",
                "extends": {
                    "finish": [
                        70,
                        35
                    ],
                    "start": [
                        70,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                70,
                                34
                            ],
                            "start": [
                                70,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "TransformProps"
                        }
                    ],
                    "view": "TransformProps?"
                },
                "file": "modules/types.lua",
                "finish": [
                    70,
                    35
                ],
                "name": "transform",
                "rawdesc": "Transform properties for animations and styling",
                "start": [
                    70,
                    10
                ],
                "type": "doc.field",
                "view": "TransformProps?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Transition settings for animations",
                "extends": {
                    "finish": [
                        71,
                        37
                    ],
                    "start": [
                        71,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                71,
                                36
                            ],
                            "start": [
                                71,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "TransitionProps"
                        }
                    ],
                    "view": "TransitionProps?"
                },
                "file": "modules/types.lua",
                "finish": [
                    71,
                    37
                ],
                "name": "transition",
                "rawdesc": "Transition settings for animations",
                "start": [
                    71,
                    10
                ],
                "type": "doc.field",
                "view": "TransitionProps?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "User-defined data storage for custom properties",
                "extends": {
                    "finish": [
                        118,
                        25
                    ],
                    "start": [
                        118,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                118,
                                24
                            ],
                            "start": [
                                118,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/types.lua",
                "finish": [
                    118,
                    25
                ],
                "name": "userdata",
                "rawdesc": "User-defined data storage for custom properties",
                "start": [
                    118,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Width of the element (default: calculated automatically)",
                "extends": {
                    "finish": [
                        34,
                        30
                    ],
                    "start": [
                        34,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                34,
                                22
                            ],
                            "start": [
                                34,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                34,
                                29
                            ],
                            "start": [
                                34,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    34,
                    30
                ],
                "name": "width",
                "rawdesc": "Width of the element (default: calculated automatically)",
                "start": [
                    34,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "X coordinate of the element (default: 0)",
                "extends": {
                    "finish": [
                        31,
                        26
                    ],
                    "start": [
                        31,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                31,
                                18
                            ],
                            "start": [
                                31,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                31,
                                25
                            ],
                            "start": [
                                31,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    31,
                    26
                ],
                "name": "x",
                "rawdesc": "X coordinate of the element (default: 0)",
                "start": [
                    31,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Y coordinate of the element (default: 0)",
                "extends": {
                    "finish": [
                        32,
                        26
                    ],
                    "start": [
                        32,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                32,
                                18
                            ],
                            "start": [
                                32,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        },
                        {
                            "finish": [
                                32,
                                25
                            ],
                            "start": [
                                32,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "(string|number)?"
                },
                "file": "modules/types.lua",
                "finish": [
                    32,
                    26
                ],
                "name": "y",
                "rawdesc": "Y coordinate of the element (default: 0)",
                "start": [
                    32,
                    10
                ],
                "type": "doc.field",
                "view": "(string|number)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Z-index for layering (default: 0)",
                "extends": {
                    "finish": [
                        33,
                        19
                    ],
                    "start": [
                        33,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                33,
                                18
                            ],
                            "start": [
                                33,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    33,
                    19
                ],
                "name": "z",
                "rawdesc": "Z-index for layering (default: 0)",
                "start": [
                    33,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            }
        ],
        "name": "ElementProps",
        "type": "type",
        "view": "ElementProps"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Error code definitions for FlexLove\n Provides centralized error codes, descriptions, and suggested fixes",
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    2,
                    20
                ],
                "rawdesc": " Error code definitions for FlexLove\n Provides centralized error codes, descriptions, and suggested fixes",
                "start": [
                    2,
                    10
                ],
                "type": "doc.class",
                "view": "ErrorCodes",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Error code categories",
                "extends": {
                    "finish": [
                        14,
                        1
                    ],
                    "start": [
                        6,
                        24
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    6,
                    21
                ],
                "name": "categories",
                "rawdesc": " Error code categories",
                "start": [
                    6,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Error code definitions",
                "extends": {
                    "finish": [
                        283,
                        1
                    ],
                    "start": [
                        17,
                        19
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    17,
                    16
                ],
                "name": "codes",
                "rawdesc": " Error code definitions",
                "start": [
                    17,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get human-readable description for error code\n\n@*param* `code` — Error code\n\n@*return* `description` — Error description",
                "extends": {
                    "args": [
                        {
                            "desc": "Error code",
                            "finish": [
                                297,
                                33
                            ],
                            "name": "code",
                            "rawdesc": "Error code",
                            "start": [
                                297,
                                29
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get human-readable description for error code\n\n@*param* `code` — Error code\n\n@*return* `description` — Error description",
                    "finish": [
                        303,
                        3
                    ],
                    "rawdesc": " Get human-readable description for error code",
                    "returns": [
                        {
                            "desc": "Error description",
                            "name": "description",
                            "rawdesc": "Error description",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        297,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.describe(code: string)\n  -> description: string"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    297,
                    28
                ],
                "name": "describe",
                "rawdesc": " Get human-readable description for error code",
                "start": [
                    297,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Format error message with code\n\n@*param* `code` — Error code\n\n@*param* `message` — Error message\n\n@*return* `formattedMessage` — Formatted error message with code",
                "extends": {
                    "args": [
                        {
                            "desc": "Error code",
                            "finish": [
                                392,
                                38
                            ],
                            "name": "code",
                            "rawdesc": "Error code",
                            "start": [
                                392,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Error message",
                            "finish": [
                                392,
                                47
                            ],
                            "name": "message",
                            "rawdesc": "Error message",
                            "start": [
                                392,
                                40
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Format error message with code\n\n@*param* `code` — Error code\n\n@*param* `message` — Error message\n\n@*return* `formattedMessage` — Formatted error message with code",
                    "finish": [
                        398,
                        3
                    ],
                    "rawdesc": " Format error message with code",
                    "returns": [
                        {
                            "desc": "Formatted error message with code",
                            "name": "formattedMessage",
                            "rawdesc": "Formatted error message with code",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        392,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.formatMessage(code: string, message: string)\n  -> formattedMessage: string"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    392,
                    33
                ],
                "name": "formatMessage",
                "rawdesc": " Format error message with code",
                "start": [
                    392,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get error information by code\n\n@*param* `code` — Error code (e.g., \"VAL_001\" or \"FLEXLOVE_VAL_001\")\n\n@*return* `errorInfo` — Error information or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Error code (e.g., \"VAL_001\" or \"FLEXLOVE_VAL_001\")",
                            "finish": [
                                288,
                                28
                            ],
                            "name": "code",
                            "rawdesc": "Error code (e.g., \"VAL_001\" or \"FLEXLOVE_VAL_001\")",
                            "start": [
                                288,
                                24
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get error information by code\n\n@*param* `code` — Error code (e.g., \"VAL_001\" or \"FLEXLOVE_VAL_001\")\n\n@*return* `errorInfo` — Error information or nil if not found",
                    "finish": [
                        292,
                        3
                    ],
                    "rawdesc": " Get error information by code",
                    "returns": [
                        {
                            "desc": "Error information or nil if not found",
                            "name": "errorInfo",
                            "rawdesc": "Error information or nil if not found",
                            "type": "function.return",
                            "view": "table?"
                        }
                    ],
                    "start": [
                        288,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.get(code: string)\n  -> errorInfo: table?"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    288,
                    23
                ],
                "name": "get",
                "rawdesc": " Get error information by code",
                "start": [
                    288,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get category for error code\n\n@*param* `code` — Error code\n\n@*return* `category` — Error category name",
                "extends": {
                    "args": [
                        {
                            "desc": "Error code",
                            "finish": [
                                319,
                                36
                            ],
                            "name": "code",
                            "rawdesc": "Error code",
                            "start": [
                                319,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get category for error code\n\n@*param* `code` — Error code\n\n@*return* `category` — Error category name",
                    "finish": [
                        325,
                        3
                    ],
                    "rawdesc": " Get category for error code",
                    "returns": [
                        {
                            "desc": "Error category name",
                            "name": "category",
                            "rawdesc": "Error category name",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        319,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.getCategory(code: string)\n  -> category: string"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    319,
                    31
                ],
                "name": "getCategory",
                "rawdesc": " Get category for error code",
                "start": [
                    319,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get suggested fix for error code\n\n@*param* `code` — Error code\n\n@*return* `suggestion` — Suggested fix",
                "extends": {
                    "args": [
                        {
                            "desc": "Error code",
                            "finish": [
                                308,
                                38
                            ],
                            "name": "code",
                            "rawdesc": "Error code",
                            "start": [
                                308,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get suggested fix for error code\n\n@*param* `code` — Error code\n\n@*return* `suggestion` — Suggested fix",
                    "finish": [
                        314,
                        3
                    ],
                    "rawdesc": " Get suggested fix for error code",
                    "returns": [
                        {
                            "desc": "Suggested fix",
                            "name": "suggestion",
                            "rawdesc": "Suggested fix",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        308,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.getSuggestion(code: string)\n  -> suggestion: string"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    308,
                    33
                ],
                "name": "getSuggestion",
                "rawdesc": " Get suggested fix for error code",
                "start": [
                    308,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get all error codes\n\n@*return* `codes` — All error codes",
                "extends": {
                    "args": [],
                    "desc": " Get all error codes\n\n@*return* `codes` — All error codes",
                    "finish": [
                        386,
                        3
                    ],
                    "rawdesc": " Get all error codes",
                    "returns": [
                        {
                            "desc": "All error codes",
                            "name": "codes",
                            "rawdesc": "All error codes",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        371,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.listAll()\n  -> codes: table"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    371,
                    27
                ],
                "name": "listAll",
                "rawdesc": " Get all error codes",
                "start": [
                    371,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " List all error codes in a category\n\n@*param* `category` — Category code (e.g., \"VAL\", \"LAY\")\n\n@*return* `codes` — List of error codes in category",
                "extends": {
                    "args": [
                        {
                            "desc": "Category code (e.g., \"VAL\", \"LAY\")",
                            "finish": [
                                330,
                                43
                            ],
                            "name": "category",
                            "rawdesc": "Category code (e.g., \"VAL\", \"LAY\")",
                            "start": [
                                330,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " List all error codes in a category\n\n@*param* `category` — Category code (e.g., \"VAL\", \"LAY\")\n\n@*return* `codes` — List of error codes in category",
                    "finish": [
                        346,
                        3
                    ],
                    "rawdesc": " List all error codes in a category",
                    "returns": [
                        {
                            "desc": "List of error codes in category",
                            "name": "codes",
                            "rawdesc": "List of error codes in category",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        330,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.listByCategory(category: string)\n  -> codes: table"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    330,
                    34
                ],
                "name": "listByCategory",
                "rawdesc": " List all error codes in a category",
                "start": [
                    330,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Search error codes by keyword\n\n@*param* `keyword` — Keyword to search for\n\n@*return* `codes` — Matching error codes",
                "extends": {
                    "args": [
                        {
                            "desc": "Keyword to search for",
                            "finish": [
                                351,
                                34
                            ],
                            "name": "keyword",
                            "rawdesc": "Keyword to search for",
                            "start": [
                                351,
                                27
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Search error codes by keyword\n\n@*param* `keyword` — Keyword to search for\n\n@*return* `codes` — Matching error codes",
                    "finish": [
                        367,
                        3
                    ],
                    "rawdesc": " Search error codes by keyword",
                    "returns": [
                        {
                            "desc": "Matching error codes",
                            "name": "codes",
                            "rawdesc": "Matching error codes",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        351,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.search(keyword: string)\n  -> codes: table"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    351,
                    26
                ],
                "name": "search",
                "rawdesc": " Search error codes by keyword",
                "start": [
                    351,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Validate that all error codes are unique and properly formatted\n\n@*return* `Returns` — true if valid, or false with error message",
                "extends": {
                    "args": [],
                    "desc": " Validate that all error codes are unique and properly formatted\n\n@*return* `Returns` — true if valid, or false with error message",
                    "finish": [
                        442,
                        3
                    ],
                    "rawdesc": " Validate that all error codes are unique and properly formatted",
                    "returns": [
                        {
                            "desc": "true if valid, or false with error message",
                            "rawdesc": "true if valid, or false with error message",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "true if valid, or false with error message",
                            "name": "Returns",
                            "rawdesc": "true if valid, or false with error message",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        402,
                        0
                    ],
                    "type": "function",
                    "view": "function ErrorCodes.validate()\n  -> boolean\n  2. Returns: string?"
                },
                "file": "modules/ErrorCodes.lua",
                "finish": [
                    402,
                    28
                ],
                "name": "validate",
                "rawdesc": " Validate that all error codes are unique and properly formatted",
                "start": [
                    402,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ErrorCodes",
        "type": "type",
        "view": "ErrorCodes"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/EventHandler.lua",
                "finish": [
                    0,
                    22
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "EventHandler",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        24
                    ],
                    "start": [
                        15,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                24
                            ],
                            "start": [
                                15,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    15,
                    24
                ],
                "name": "_Context",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        14,
                        27
                    ],
                    "start": [
                        14,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                27
                            ],
                            "start": [
                                14,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    14,
                    27
                ],
                "name": "_InputEvent",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        35
                    ],
                    "start": [
                        18,
                        23
                    ],
                    "type": "getlocal",
                    "view": "EventHandler"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    18,
                    20
                ],
                "name": "__index",
                "start": [
                    18,
                    0
                ],
                "type": "setfield",
                "view": "EventHandler",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        5,
                        28
                    ],
                    "start": [
                        5,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                5,
                                28
                            ],
                            "start": [
                                5,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    5,
                    28
                ],
                "name": "_clickCount",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        6,
                        43
                    ],
                    "start": [
                        6,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                43
                            ],
                            "start": [
                                6,
                                22
                            ],
                            "type": "doc.type.sign",
                            "view": "table<number, number>"
                        }
                    ],
                    "view": "table<number, number>"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    6,
                    43
                ],
                "name": "_dragStartX",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "table<number, number>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        7,
                        43
                    ],
                    "start": [
                        7,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                43
                            ],
                            "start": [
                                7,
                                22
                            ],
                            "type": "doc.type.sign",
                            "view": "table<number, number>"
                        }
                    ],
                    "view": "table<number, number>"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    7,
                    43
                ],
                "name": "_dragStartY",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "table<number, number>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        12,
                        27
                    ],
                    "start": [
                        12,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                26
                            ],
                            "start": [
                                12,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    12,
                    27
                ],
                "name": "_element",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse drag (while button is pressed and mouse moves)\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `button` — Mouse button\n\n@*param* `isHovering` — Whether mouse is over element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                249,
                                8
                            ],
                            "name": "self",
                            "start": [
                                249,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "Mouse X position",
                            "finish": [
                                249,
                                41
                            ],
                            "name": "mx",
                            "rawdesc": "Mouse X position",
                            "start": [
                                249,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y position",
                            "finish": [
                                249,
                                45
                            ],
                            "name": "my",
                            "rawdesc": "Mouse Y position",
                            "start": [
                                249,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse button",
                            "finish": [
                                249,
                                53
                            ],
                            "name": "button",
                            "rawdesc": "Mouse button",
                            "start": [
                                249,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Whether mouse is over element",
                            "finish": [
                                249,
                                65
                            ],
                            "name": "isHovering",
                            "rawdesc": "Whether mouse is over element",
                            "start": [
                                249,
                                55
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": " Handle mouse drag (while button is pressed and mouse moves)\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `button` — Mouse button\n\n@*param* `isHovering` — Whether mouse is over element",
                    "finish": [
                        288,
                        3
                    ],
                    "rawdesc": " Handle mouse drag (while button is pressed and mouse moves)",
                    "start": [
                        249,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:_handleMouseDrag(mx: number, my: number, button: number, isHovering: boolean)"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    249,
                    38
                ],
                "name": "_handleMouseDrag",
                "rawdesc": " Handle mouse drag (while button is pressed and mouse moves)",
                "start": [
                    249,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse button press\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `button` — Mouse button (1=left, 2=right, 3=middle)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                198,
                                8
                            ],
                            "name": "self",
                            "start": [
                                198,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "Mouse X position",
                            "finish": [
                                198,
                                42
                            ],
                            "name": "mx",
                            "rawdesc": "Mouse X position",
                            "start": [
                                198,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y position",
                            "finish": [
                                198,
                                46
                            ],
                            "name": "my",
                            "rawdesc": "Mouse Y position",
                            "start": [
                                198,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse button (1=left, 2=right, 3=middle)",
                            "finish": [
                                198,
                                54
                            ],
                            "name": "button",
                            "rawdesc": "Mouse button (1=left, 2=right, 3=middle)",
                            "start": [
                                198,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle mouse button press\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `button` — Mouse button (1=left, 2=right, 3=middle)",
                    "finish": [
                        242,
                        3
                    ],
                    "rawdesc": " Handle mouse button press",
                    "start": [
                        198,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:_handleMousePress(mx: number, my: number, button: number)"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    198,
                    39
                ],
                "name": "_handleMousePress",
                "rawdesc": " Handle mouse button press",
                "start": [
                    198,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse button release\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `button` — Mouse button",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                294,
                                8
                            ],
                            "name": "self",
                            "start": [
                                294,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "Mouse X position",
                            "finish": [
                                294,
                                44
                            ],
                            "name": "mx",
                            "rawdesc": "Mouse X position",
                            "start": [
                                294,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y position",
                            "finish": [
                                294,
                                48
                            ],
                            "name": "my",
                            "rawdesc": "Mouse Y position",
                            "start": [
                                294,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse button",
                            "finish": [
                                294,
                                56
                            ],
                            "name": "button",
                            "rawdesc": "Mouse button",
                            "start": [
                                294,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle mouse button release\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `button` — Mouse button",
                    "finish": [
                        380,
                        3
                    ],
                    "rawdesc": " Handle mouse button release",
                    "start": [
                        294,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:_handleMouseRelease(mx: number, my: number, button: number)"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    294,
                    41
                ],
                "name": "_handleMouseRelease",
                "rawdesc": " Handle mouse button release",
                "start": [
                    294,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        11,
                        26
                    ],
                    "start": [
                        11,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                26
                            ],
                            "start": [
                                11,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    11,
                    26
                ],
                "name": "_hovered",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        4,
                        34
                    ],
                    "start": [
                        4,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                33
                            ],
                            "start": [
                                4,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    4,
                    34
                ],
                "name": "_lastClickButton",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        3,
                        32
                    ],
                    "start": [
                        3,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                31
                            ],
                            "start": [
                                3,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    3,
                    32
                ],
                "name": "_lastClickTime",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        8,
                        43
                    ],
                    "start": [
                        8,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                43
                            ],
                            "start": [
                                8,
                                22
                            ],
                            "type": "doc.type.sign",
                            "view": "table<number, number>"
                        }
                    ],
                    "view": "table<number, number>"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    8,
                    43
                ],
                "name": "_lastMouseX",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "table<number, number>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        9,
                        43
                    ],
                    "start": [
                        9,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                43
                            ],
                            "start": [
                                9,
                                22
                            ],
                            "type": "doc.type.sign",
                            "view": "table<number, number>"
                        }
                    ],
                    "view": "table<number, number>"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    9,
                    43
                ],
                "name": "_lastMouseY",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "table<number, number>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        2,
                        41
                    ],
                    "start": [
                        2,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                2,
                                41
                            ],
                            "start": [
                                2,
                                19
                            ],
                            "type": "doc.type.sign",
                            "view": "table<number, boolean>"
                        }
                    ],
                    "view": "table<number, boolean>"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    2,
                    41
                ],
                "name": "_pressed",
                "start": [
                    2,
                    10
                ],
                "type": "doc.field",
                "view": "table<number, boolean>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        13,
                        40
                    ],
                    "start": [
                        13,
                        33
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                40
                            ],
                            "start": [
                                13,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    13,
                    40
                ],
                "name": "_scrollbarPressHandled",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        10,
                        46
                    ],
                    "start": [
                        10,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                10,
                                46
                            ],
                            "start": [
                                10,
                                24
                            ],
                            "type": "doc.type.sign",
                            "view": "table<number, boolean>"
                        }
                    ],
                    "view": "table<number, boolean>"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    10,
                    46
                ],
                "name": "_touchPressed",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "table<number, boolean>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        22
                    ],
                    "start": [
                        16,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                16,
                                22
                            ],
                            "start": [
                                16,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    16,
                    22
                ],
                "name": "_utils",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get state for persistence (for immediate mode)\n\n@*return* `State` — data",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                65,
                                8
                            ],
                            "name": "self",
                            "start": [
                                65,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        }
                    ],
                    "desc": " Get state for persistence (for immediate mode)\n\n@*return* `State` — data",
                    "finish": [
                        77,
                        3
                    ],
                    "rawdesc": " Get state for persistence (for immediate mode)",
                    "returns": [
                        {
                            "desc": "data",
                            "name": "State",
                            "rawdesc": "data",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        65,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:getState()\n  -> State: table"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    65,
                    30
                ],
                "name": "getState",
                "rawdesc": " Get state for persistence (for immediate mode)",
                "start": [
                    65,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Initialize EventHandler with parent element reference\n\n@*param* `element` — The parent element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                59,
                                8
                            ],
                            "name": "self",
                            "start": [
                                59,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "The parent element",
                            "finish": [
                                59,
                                40
                            ],
                            "name": "element",
                            "rawdesc": "The parent element",
                            "start": [
                                59,
                                33
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "desc": " Initialize EventHandler with parent element reference\n\n@*param* `element` — The parent element",
                    "finish": [
                        61,
                        3
                    ],
                    "rawdesc": " Initialize EventHandler with parent element reference",
                    "start": [
                        59,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:initialize(element: Element)"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    59,
                    32
                ],
                "name": "initialize",
                "rawdesc": " Initialize EventHandler with parent element reference",
                "start": [
                    59,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if any mouse button is pressed\n\n@*return* `True` — if any button is pressed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                423,
                                8
                            ],
                            "name": "self",
                            "start": [
                                423,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        }
                    ],
                    "desc": " Check if any mouse button is pressed\n\n@*return* `True` — if any button is pressed",
                    "finish": [
                        430,
                        3
                    ],
                    "rawdesc": " Check if any mouse button is pressed",
                    "returns": [
                        {
                            "desc": "if any button is pressed",
                            "name": "True",
                            "rawdesc": "if any button is pressed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        423,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:isAnyButtonPressed()\n  -> True: boolean"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    423,
                    40
                ],
                "name": "isAnyButtonPressed",
                "rawdesc": " Check if any mouse button is pressed",
                "start": [
                    423,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if a specific button is pressed\n\n@*param* `button` — Mouse button (1=left, 2=right, 3=middle)\n\n@*return* `True` — if button is pressed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                435,
                                8
                            ],
                            "name": "self",
                            "start": [
                                435,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "Mouse button (1=left, 2=right, 3=middle)",
                            "finish": [
                                435,
                                44
                            ],
                            "name": "button",
                            "rawdesc": "Mouse button (1=left, 2=right, 3=middle)",
                            "start": [
                                435,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Check if a specific button is pressed\n\n@*param* `button` — Mouse button (1=left, 2=right, 3=middle)\n\n@*return* `True` — if button is pressed",
                    "finish": [
                        437,
                        3
                    ],
                    "rawdesc": " Check if a specific button is pressed",
                    "returns": [
                        {
                            "desc": "if button is pressed",
                            "name": "True",
                            "rawdesc": "if button is pressed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        435,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:isButtonPressed(button: number)\n  -> True: boolean"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    435,
                    37
                ],
                "name": "isButtonPressed",
                "rawdesc": " Check if a specific button is pressed",
                "start": [
                    435,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a new EventHandler instance\n\n@*param* `config` — Configuration options\n\n@*param* `deps` — Dependencies {InputEvent, Context, utils}",
                "extends": {
                    "args": [
                        {
                            "desc": "Configuration options",
                            "finish": [
                                24,
                                32
                            ],
                            "name": "config",
                            "rawdesc": "Configuration options",
                            "start": [
                                24,
                                26
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Dependencies {InputEvent, Context, utils}",
                            "finish": [
                                24,
                                38
                            ],
                            "name": "deps",
                            "rawdesc": "Dependencies {InputEvent, Context, utils}",
                            "start": [
                                24,
                                34
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Create a new EventHandler instance\n\n@*param* `config` — Configuration options\n\n@*param* `deps` — Dependencies {InputEvent, Context, utils}",
                    "finish": [
                        55,
                        3
                    ],
                    "rawdesc": " Create a new EventHandler instance",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "EventHandler"
                        }
                    ],
                    "start": [
                        24,
                        0
                    ],
                    "type": "function",
                    "view": "function EventHandler.new(config: table, deps: table)\n  -> EventHandler"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    24,
                    25
                ],
                "name": "new",
                "rawdesc": " Create a new EventHandler instance",
                "start": [
                    24,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        1,
                        57
                    ],
                    "start": [
                        1,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        1,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            1,
                                            29
                                        ],
                                        "start": [
                                            1,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        1,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        1,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "event",
                                        "finish": [
                                            1,
                                            44
                                        ],
                                        "start": [
                                            1,
                                            39
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "event"
                                    },
                                    "start": [
                                        1,
                                        39
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "InputEvent"
                                }
                            ],
                            "finish": [
                                1,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                1,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, event: InputEvent)"
                        }
                    ],
                    "view": "fun(element: Element, event: InputEvent)?"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    1,
                    57
                ],
                "name": "onEvent",
                "start": [
                    1,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, event: InputEvent)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Process mouse button events in the update cycle\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `isHovering` — Whether mouse is over element\n\n@*param* `isActiveElement` — Whether this is the top element at mouse position",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                102,
                                8
                            ],
                            "name": "self",
                            "start": [
                                102,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "Mouse X position",
                            "finish": [
                                102,
                                43
                            ],
                            "name": "mx",
                            "rawdesc": "Mouse X position",
                            "start": [
                                102,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y position",
                            "finish": [
                                102,
                                47
                            ],
                            "name": "my",
                            "rawdesc": "Mouse Y position",
                            "start": [
                                102,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Whether mouse is over element",
                            "finish": [
                                102,
                                59
                            ],
                            "name": "isHovering",
                            "rawdesc": "Whether mouse is over element",
                            "start": [
                                102,
                                49
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether this is the top element at mouse position",
                            "finish": [
                                102,
                                76
                            ],
                            "name": "isActiveElement",
                            "rawdesc": "Whether this is the top element at mouse position",
                            "start": [
                                102,
                                61
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": " Process mouse button events in the update cycle\n\n@*param* `mx` — Mouse X position\n\n@*param* `my` — Mouse Y position\n\n@*param* `isHovering` — Whether mouse is over element\n\n@*param* `isActiveElement` — Whether this is the top element at mouse position",
                    "finish": [
                        192,
                        3
                    ],
                    "rawdesc": " Process mouse button events in the update cycle",
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:processMouseEvents(mx: number, my: number, isHovering: boolean, isActiveElement: boolean)"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    102,
                    40
                ],
                "name": "processMouseEvents",
                "rawdesc": " Process mouse button events in the update cycle",
                "start": [
                    102,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Process touch events in the update cycle",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                383,
                                8
                            ],
                            "name": "self",
                            "start": [
                                383,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        }
                    ],
                    "desc": " Process touch events in the update cycle",
                    "finish": [
                        414,
                        3
                    ],
                    "rawdesc": " Process touch events in the update cycle",
                    "start": [
                        383,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:processTouchEvents()"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    383,
                    40
                ],
                "name": "processTouchEvents",
                "rawdesc": " Process touch events in the update cycle",
                "start": [
                    383,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Reset scrollbar press flag (called each frame)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                417,
                                8
                            ],
                            "name": "self",
                            "start": [
                                417,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        }
                    ],
                    "desc": " Reset scrollbar press flag (called each frame)",
                    "finish": [
                        419,
                        3
                    ],
                    "rawdesc": " Reset scrollbar press flag (called each frame)",
                    "start": [
                        417,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:resetScrollbarPressFlag()"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    417,
                    45
                ],
                "name": "resetScrollbarPressFlag",
                "rawdesc": " Reset scrollbar press flag (called each frame)",
                "start": [
                    417,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Restore state from persistence (for immediate mode)\n\n@*param* `state` — State data",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "EventHandler"
                        },
                        {
                            "desc": "State data",
                            "finish": [
                                81,
                                36
                            ],
                            "name": "state",
                            "rawdesc": "State data",
                            "start": [
                                81,
                                31
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Restore state from persistence (for immediate mode)\n\n@*param* `state` — State data",
                    "finish": [
                        95,
                        3
                    ],
                    "rawdesc": " Restore state from persistence (for immediate mode)",
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) EventHandler:setState(state: table)"
                },
                "file": "modules/EventHandler.lua",
                "finish": [
                    81,
                    30
                ],
                "name": "setState",
                "rawdesc": " Restore state from persistence (for immediate mode)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "EventHandler",
        "type": "type",
        "view": "EventHandler"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "FlexLove.lua",
                "finish": [
                    57,
                    18
                ],
                "start": [
                    57,
                    10
                ],
                "type": "doc.class",
                "view": "FlexLove",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        799,
                        30
                    ],
                    "start": [
                        799,
                        21
                    ],
                    "type": "getlocal",
                    "view": "Animation"
                },
                "file": "FlexLove.lua",
                "finish": [
                    799,
                    18
                ],
                "name": "Animation",
                "start": [
                    799,
                    0
                ],
                "type": "setfield",
                "view": "Animation",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        800,
                        22
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        800,
                        17
                    ],
                    "type": "getlocal",
                    "view": "Color"
                },
                "file": "FlexLove.lua",
                "finish": [
                    800,
                    14
                ],
                "name": "Color",
                "rawdesc": " Utility class for color handling",
                "start": [
                    800,
                    0
                ],
                "type": "setfield",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        801,
                        22
                    ],
                    "start": [
                        801,
                        17
                    ],
                    "type": "getlocal",
                    "view": "Theme"
                },
                "file": "FlexLove.lua",
                "finish": [
                    801,
                    14
                ],
                "name": "Theme",
                "start": [
                    801,
                    0
                ],
                "type": "setfield",
                "view": "Theme",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        66,
                        73
                    ],
                    "start": [
                        66,
                        24
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "FlexLove.lua",
                "finish": [
                    66,
                    21
                ],
                "name": "_DESCRIPTION",
                "start": [
                    66,
                    0
                ],
                "type": "setfield",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        90,
                        2
                    ],
                    "start": [
                        68,
                        20
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "FlexLove.lua",
                "finish": [
                    68,
                    17
                ],
                "name": "_LICENSE",
                "start": [
                    68,
                    0
                ],
                "type": "setfield",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        67,
                        55
                    ],
                    "start": [
                        67,
                        16
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "FlexLove.lua",
                "finish": [
                    67,
                    13
                ],
                "name": "_URL",
                "start": [
                    67,
                    0
                ],
                "type": "setfield",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Add version and metadata",
                "extends": {
                    "finish": [
                        65,
                        27
                    ],
                    "start": [
                        65,
                        20
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "FlexLove.lua",
                "finish": [
                    65,
                    17
                ],
                "name": "_VERSION",
                "rawdesc": " Add version and metadata",
                "start": [
                    65,
                    0
                ],
                "type": "setfield",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        475,
                        43
                    ],
                    "start": [
                        475,
                        33
                    ],
                    "type": "getlocal",
                    "view": "Element?"
                },
                "file": "FlexLove.lua",
                "finish": [
                    475,
                    30
                ],
                "name": "_activeEventElement",
                "start": [
                    475,
                    2
                ],
                "type": "setfield",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        484,
                        36
                    ],
                    "start": [
                        484,
                        33
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    484,
                    30
                ],
                "name": "_activeEventElement",
                "start": [
                    484,
                    2
                ],
                "type": "setfield",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        163,
                        36
                    ],
                    "start": [
                        163,
                        31
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    163,
                    28
                ],
                "name": "_autoBeganFrame",
                "start": [
                    163,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        168,
                        36
                    ],
                    "start": [
                        168,
                        31
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    168,
                    28
                ],
                "name": "_autoBeganFrame",
                "start": [
                    168,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        266,
                        36
                    ],
                    "start": [
                        266,
                        31
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    266,
                    28
                ],
                "name": "_autoBeganFrame",
                "start": [
                    266,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        671,
                        35
                    ],
                    "start": [
                        671,
                        31
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    671,
                    28
                ],
                "name": "_autoBeganFrame",
                "start": [
                    671,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        128,
                        69
                    ],
                    "start": [
                        128,
                        34
                    ],
                    "type": "binary",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    128,
                    31
                ],
                "name": "_autoFrameManagement",
                "start": [
                    128,
                    2
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "finish": [
                        149,
                        32
                    ],
                    "start": [
                        149,
                        29
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    149,
                    26
                ],
                "name": "_backdropCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    149,
                    2
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "finish": [
                        258,
                        30
                    ],
                    "start": [
                        258,
                        27
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    258,
                    24
                ],
                "name": "_backdropCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    258,
                    0
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        277,
                        71
                    ],
                    "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        277,
                        33
                    ],
                    "type": "select",
                    "view": "love.Canvas"
                },
                "file": "FlexLove.lua",
                "finish": [
                    277,
                    30
                ],
                "name": "_backdropCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    277,
                    6
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "finish": [
                        653,
                        32
                    ],
                    "start": [
                        653,
                        29
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    653,
                    26
                ],
                "name": "_backdropCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    653,
                    2
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        651,
                        54
                    ],
                    "start": [
                        651,
                        29
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    651,
                    26
                ],
                "name": "_cachedViewport",
                "start": [
                    651,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        150,
                        56
                    ],
                    "start": [
                        150,
                        31
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    150,
                    28
                ],
                "name": "_canvasDimensions",
                "start": [
                    150,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        259,
                        54
                    ],
                    "start": [
                        259,
                        29
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    259,
                    26
                ],
                "name": "_canvasDimensions",
                "start": [
                    259,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        654,
                        56
                    ],
                    "start": [
                        654,
                        31
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    654,
                    28
                ],
                "name": "_canvasDimensions",
                "start": [
                    654,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        169,
                        39
                    ],
                    "start": [
                        169,
                        37
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    169,
                    34
                ],
                "name": "_currentFrameElements",
                "start": [
                    169,
                    4
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        189,
                        37
                    ],
                    "start": [
                        189,
                        35
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    189,
                    32
                ],
                "name": "_currentFrameElements",
                "start": [
                    189,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        655,
                        32
                    ],
                    "start": [
                        655,
                        29
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    655,
                    26
                ],
                "name": "_focusedElement",
                "start": [
                    655,
                    2
                ],
                "type": "setfield",
                "view": "unknown",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        170,
                        29
                    ],
                    "start": [
                        170,
                        28
                    ],
                    "type": "integer",
                    "view": "integer"
                },
                "file": "FlexLove.lua",
                "finish": [
                    170,
                    25
                ],
                "name": "_frameNumber",
                "start": [
                    170,
                    4
                ],
                "type": "setfield",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        187,
                        51
                    ],
                    "start": [
                        187,
                        26
                    ],
                    "type": "binary",
                    "view": "unknown"
                },
                "file": "FlexLove.lua",
                "finish": [
                    187,
                    23
                ],
                "name": "_frameNumber",
                "start": [
                    187,
                    2
                ],
                "type": "setfield",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        162,
                        34
                    ],
                    "start": [
                        162,
                        29
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    162,
                    26
                ],
                "name": "_frameStarted",
                "start": [
                    162,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        167,
                        34
                    ],
                    "start": [
                        167,
                        29
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    167,
                    26
                ],
                "name": "_frameStarted",
                "start": [
                    167,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        190,
                        31
                    ],
                    "start": [
                        190,
                        27
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    190,
                    24
                ],
                "name": "_frameStarted",
                "start": [
                    190,
                    2
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        254,
                        32
                    ],
                    "start": [
                        254,
                        27
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    254,
                    24
                ],
                "name": "_frameStarted",
                "start": [
                    254,
                    2
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "finish": [
                        148,
                        28
                    ],
                    "start": [
                        148,
                        25
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    148,
                    22
                ],
                "name": "_gameCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    148,
                    2
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "finish": [
                        257,
                        26
                    ],
                    "start": [
                        257,
                        23
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    257,
                    20
                ],
                "name": "_gameCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    257,
                    0
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        276,
                        67
                    ],
                    "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        276,
                        29
                    ],
                    "type": "select",
                    "view": "love.Canvas"
                },
                "file": "FlexLove.lua",
                "finish": [
                    276,
                    26
                ],
                "name": "_gameCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    276,
                    6
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "finish": [
                        652,
                        28
                    ],
                    "start": [
                        652,
                        25
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    652,
                    22
                ],
                "name": "_gameCanvas",
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    652,
                    2
                ],
                "type": "setfield",
                "view": "love.Canvas",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        160,
                        34
                    ],
                    "start": [
                        160,
                        30
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    160,
                    27
                ],
                "name": "_immediateMode",
                "start": [
                    160,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        165,
                        35
                    ],
                    "start": [
                        165,
                        30
                    ],
                    "type": "boolean",
                    "view": "boolean"
                },
                "file": "FlexLove.lua",
                "finish": [
                    165,
                    27
                ],
                "name": "_immediateMode",
                "start": [
                    165,
                    4
                ],
                "type": "setfield",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        161,
                        47
                    ],
                    "start": [
                        161,
                        35
                    ],
                    "type": "getlocal",
                    "view": "unknown"
                },
                "file": "FlexLove.lua",
                "finish": [
                    161,
                    32
                ],
                "name": "_immediateModeState",
                "start": [
                    161,
                    4
                ],
                "type": "setfield",
                "view": "unknown",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        166,
                        38
                    ],
                    "start": [
                        166,
                        35
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    166,
                    32
                ],
                "name": "_immediateModeState",
                "start": [
                    166,
                    4
                ],
                "type": "setfield",
                "view": "unknown",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        100,
                        5
                    ],
                    "start": [
                        97,
                        25
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    97,
                    22
                ],
                "name": "baseScale",
                "start": [
                    97,
                    4
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        649,
                        26
                    ],
                    "start": [
                        649,
                        23
                    ],
                    "type": "nil",
                    "view": "nil"
                },
                "file": "FlexLove.lua",
                "finish": [
                    649,
                    20
                ],
                "name": "baseScale",
                "start": [
                    649,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Begin a new immediate mode frame",
                "extends": {
                    "args": [],
                    "desc": " Begin a new immediate mode frame",
                    "finish": [
                        194,
                        3
                    ],
                    "rawdesc": " Begin a new immediate mode frame",
                    "start": [
                        182,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.beginFrame()"
                },
                "file": "FlexLove.lua",
                "finish": [
                    182,
                    28
                ],
                "name": "beginFrame",
                "rawdesc": " Begin a new immediate mode frame",
                "start": [
                    182,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear all immediate mode states",
                "extends": {
                    "args": [],
                    "desc": " Clear all immediate mode states",
                    "finish": [
                        788,
                        3
                    ],
                    "rawdesc": " Clear all immediate mode states",
                    "start": [
                        783,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.clearAllStates()"
                },
                "file": "FlexLove.lua",
                "finish": [
                    783,
                    32
                ],
                "name": "clearAllStates",
                "rawdesc": " Clear all immediate mode states",
                "start": [
                    783,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear state for a specific element ID",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                775,
                                31
                            ],
                            "name": "id",
                            "start": [
                                775,
                                29
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Clear state for a specific element ID",
                    "finish": [
                        780,
                        3
                    ],
                    "rawdesc": " Clear state for a specific element ID",
                    "start": [
                        775,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.clearState(id: string)"
                },
                "file": "FlexLove.lua",
                "finish": [
                    775,
                    28
                ],
                "name": "clearState",
                "rawdesc": " Clear state for a specific element ID",
                "start": [
                    775,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        112,
                        44
                    ],
                    "start": [
                        112,
                        32
                    ],
                    "type": "getfield",
                    "view": "(string|ThemeDefinition)?"
                },
                "file": "FlexLove.lua",
                "finish": [
                    112,
                    29
                ],
                "name": "defaultTheme",
                "start": [
                    112,
                    8
                ],
                "type": "setfield",
                "view": "(string|ThemeDefinition)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        116,
                        42
                    ],
                    "start": [
                        116,
                        32
                    ],
                    "type": "getfield",
                    "view": "string"
                },
                "file": "FlexLove.lua",
                "finish": [
                    116,
                    29
                ],
                "name": "defaultTheme",
                "start": [
                    116,
                    8
                ],
                "type": "setfield",
                "view": "(string|ThemeDefinition)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [],
                    "finish": [
                        656,
                        3
                    ],
                    "start": [
                        644,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.destroy()"
                },
                "file": "FlexLove.lua",
                "finish": [
                    644,
                    25
                ],
                "name": "destroy",
                "start": [
                    644,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                263,
                                35
                            ],
                            "name": "gameDrawFunc",
                            "start": [
                                263,
                                23
                            ],
                            "type": "local",
                            "view": "function|nil"
                        },
                        {
                            "finish": [
                                263,
                                49
                            ],
                            "name": "postDrawFunc",
                            "start": [
                                263,
                                37
                            ],
                            "type": "local",
                            "view": "function|nil"
                        }
                    ],
                    "finish": [
                        359,
                        3
                    ],
                    "start": [
                        263,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.draw(gameDrawFunc: function|nil, postDrawFunc: function|nil)"
                },
                "file": "FlexLove.lua",
                "finish": [
                    263,
                    22
                ],
                "name": "draw",
                "start": [
                    263,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [],
                    "finish": [
                        255,
                        3
                    ],
                    "start": [
                        196,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.endFrame()"
                },
                "file": "FlexLove.lua",
                "finish": [
                    196,
                    26
                ],
                "name": "endFrame",
                "start": [
                    196,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        802,
                        22
                    ],
                    "start": [
                        802,
                        17
                    ],
                    "type": "getlocal",
                    "view": "unknown"
                },
                "file": "FlexLove.lua",
                "finish": [
                    802,
                    14
                ],
                "name": "enums",
                "start": [
                    802,
                    0
                ],
                "type": "setfield",
                "view": "unknown",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Find the topmost element at given coordinates",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                379,
                                40
                            ],
                            "name": "x",
                            "start": [
                                379,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                379,
                                43
                            ],
                            "name": "y",
                            "start": [
                                379,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Find the topmost element at given coordinates",
                    "finish": [
                        469,
                        3
                    ],
                    "rawdesc": " Find the topmost element at given coordinates",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Element?"
                        }
                    ],
                    "start": [
                        379,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.getElementAtPosition(x: number, y: number)\n  -> Element?"
                },
                "file": "FlexLove.lua",
                "finish": [
                    379,
                    38
                ],
                "name": "getElementAtPosition",
                "rawdesc": " Find the topmost element at given coordinates",
                "start": [
                    379,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "```lua\nreturn #1:\n    | \"immediate\"\n    | \"retained\"\n```",
                "extends": {
                    "args": [],
                    "desc": "```lua\nreturn #1:\n    | \"immediate\"\n    | \"retained\"\n```",
                    "finish": [
                        179,
                        3
                    ],
                    "rawdesc": "```lua\nreturn #1:\n    | \"immediate\"\n    | \"retained\"\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"immediate\"|\"retained\""
                        }
                    ],
                    "start": [
                        177,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.getMode()\n  -> \"immediate\"|\"retained\""
                },
                "file": "FlexLove.lua",
                "finish": [
                    177,
                    25
                ],
                "name": "getMode",
                "rawdesc": "```lua\nreturn #1:\n    | \"immediate\"\n    | \"retained\"\n```",
                "start": [
                    177,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [],
                    "finish": [
                        771,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        766,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.getStateCount()\n  -> number"
                },
                "file": "FlexLove.lua",
                "finish": [
                    766,
                    31
                ],
                "name": "getStateCount",
                "start": [
                    766,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get state statistics (for debugging)",
                "extends": {
                    "args": [],
                    "desc": " Get state statistics (for debugging)",
                    "finish": [
                        797,
                        3
                    ],
                    "rawdesc": " Get state statistics (for debugging)",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        792,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.getStateStats()\n  -> table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    792,
                    31
                ],
                "name": "getStateStats",
                "rawdesc": " Get state statistics (for debugging)",
                "start": [
                    792,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                29
                            ],
                            "name": "config",
                            "start": [
                                93,
                                23
                            ],
                            "type": "local",
                            "view": "{ baseScale: { width: number?, height: number? }?, theme: (string|ThemeDefinition)?, immediateMode: boolean?, stateRetentionFrames: number?, maxStateEntries: number?, autoFrameManagement: boolean? }"
                        }
                    ],
                    "finish": [
                        136,
                        3
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.init(config: { baseScale: { width: number?, height: number? }?, theme: (string|ThemeDefinition)?, immediateMode: boolean?, stateRetentionFrames: number?, maxStateEntries: number?, autoFrameManagement: boolean? })"
                },
                "file": "FlexLove.lua",
                "finish": [
                    93,
                    22
                ],
                "name": "init",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                514,
                                32
                            ],
                            "name": "key",
                            "start": [
                                514,
                                29
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                514,
                                42
                            ],
                            "name": "scancode",
                            "start": [
                                514,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                514,
                                52
                            ],
                            "name": "isrepeat",
                            "start": [
                                514,
                                44
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "finish": [
                        518,
                        3
                    ],
                    "start": [
                        514,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.keypressed(key: string, scancode: string, isrepeat: boolean)"
                },
                "file": "FlexLove.lua",
                "finish": [
                    514,
                    28
                ],
                "name": "keypressed",
                "start": [
                    514,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "desc": "=====================================--\n For Element.lua\n=====================================--",
                            "finish": [
                                660,
                                27
                            ],
                            "name": "props",
                            "rawdesc": "=====================================--\n For Element.lua\n=====================================--",
                            "start": [
                                660,
                                22
                            ],
                            "type": "local",
                            "view": "ElementProps"
                        }
                    ],
                    "finish": [
                        763,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Element"
                        }
                    ],
                    "start": [
                        660,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.new(props: ElementProps)\n  -> Element"
                },
                "file": "FlexLove.lua",
                "finish": [
                    660,
                    21
                ],
                "name": "new",
                "start": [
                    660,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [],
                    "finish": [
                        155,
                        3
                    ],
                    "start": [
                        138,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.resize()"
                },
                "file": "FlexLove.lua",
                "finish": [
                    138,
                    24
                ],
                "name": "resize",
                "start": [
                    138,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        650,
                        46
                    ],
                    "start": [
                        650,
                        26
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    650,
                    23
                ],
                "name": "scaleFactors",
                "start": [
                    650,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "```lua\nmode:\n    | \"immediate\"\n    | \"retained\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                158,
                                30
                            ],
                            "name": "mode",
                            "start": [
                                158,
                                26
                            ],
                            "type": "local",
                            "view": "\"immediate\"|\"retained\""
                        }
                    ],
                    "desc": "```lua\nmode:\n    | \"immediate\"\n    | \"retained\"\n```",
                    "finish": [
                        174,
                        3
                    ],
                    "rawdesc": "```lua\nmode:\n    | \"immediate\"\n    | \"retained\"\n```",
                    "start": [
                        158,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.setMode(mode: \"immediate\"|\"retained\")"
                },
                "file": "FlexLove.lua",
                "finish": [
                    158,
                    25
                ],
                "name": "setMode",
                "rawdesc": "```lua\nmode:\n    | \"immediate\"\n    | \"retained\"\n```",
                "start": [
                    158,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                505,
                                32
                            ],
                            "name": "text",
                            "start": [
                                505,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "finish": [
                        509,
                        3
                    ],
                    "start": [
                        505,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.textinput(text: string)"
                },
                "file": "FlexLove.lua",
                "finish": [
                    505,
                    27
                ],
                "name": "textinput",
                "start": [
                    505,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        191,
                        27
                    ],
                    "start": [
                        191,
                        25
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    191,
                    22
                ],
                "name": "topElements",
                "start": [
                    191,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        648,
                        27
                    ],
                    "start": [
                        648,
                        25
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "FlexLove.lua",
                "finish": [
                    648,
                    22
                ],
                "name": "topElements",
                "start": [
                    648,
                    2
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                471,
                                27
                            ],
                            "name": "dt",
                            "start": [
                                471,
                                25
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "finish": [
                        502,
                        3
                    ],
                    "start": [
                        471,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.update(dt: any)"
                },
                "file": "FlexLove.lua",
                "finish": [
                    471,
                    24
                ],
                "name": "update",
                "start": [
                    471,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                520,
                                31
                            ],
                            "name": "dx",
                            "start": [
                                520,
                                29
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                520,
                                35
                            ],
                            "name": "dy",
                            "start": [
                                520,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "finish": [
                        642,
                        3
                    ],
                    "start": [
                        520,
                        0
                    ],
                    "type": "function",
                    "view": "function FlexLove.wheelmoved(dx: any, dy: any)"
                },
                "file": "FlexLove.lua",
                "finish": [
                    520,
                    28
                ],
                "name": "wheelmoved",
                "start": [
                    520,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "FlexLove",
        "type": "type",
        "view": "FlexLove"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Theme.lua",
                "finish": [
                    106,
                    20
                ],
                "start": [
                    106,
                    10
                ],
                "type": "doc.class",
                "view": "FontFamily",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached loaded font",
                "extends": {
                    "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        108,
                        32
                    ],
                    "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        108,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                108,
                                31
                            ],
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                108,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "love.Font"
                        }
                    ],
                    "view": "(love.Font)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    108,
                    32
                ],
                "name": "_loadedFont",
                "rawdesc": "Internal: cached loaded font",
                "start": [
                    108,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Font)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Path to the font file (relative to FlexLove or absolute)",
                "extends": {
                    "finish": [
                        107,
                        21
                    ],
                    "start": [
                        107,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                107,
                                21
                            ],
                            "start": [
                                107,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    107,
                    21
                ],
                "name": "path",
                "rawdesc": "Path to the font file (relative to FlexLove or absolute)",
                "start": [
                    107,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            }
        ],
        "name": "FontFamily",
        "type": "type",
        "view": "FontFamily"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/ImageCache.lua",
                "finish": [
                    7,
                    20
                ],
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "ImageCache",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        8,
                        79
                    ],
                    "start": [
                        8,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                79
                            ],
                            "start": [
                                8,
                                17
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, { image: love.Image, imageData: (love.ImageData)? }>"
                        }
                    ],
                    "view": "table<string, { image: love.Image, imageData: (love.ImageData)? }>"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    8,
                    79
                ],
                "name": "_cache",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, { image: love.Image, imageData: (love.ImageData)? }>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear all cached images",
                "extends": {
                    "args": [],
                    "desc": " Clear all cached images",
                    "finish": [
                        112,
                        3
                    ],
                    "rawdesc": " Clear all cached images",
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageCache.clear()"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    102,
                    25
                ],
                "name": "clear",
                "rawdesc": " Clear all cached images",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get a cached image without loading\n\n@*param* `imagePath` — Path to image file\n\n@*return* — Cached image or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Path to image file",
                            "finish": [
                                55,
                                33
                            ],
                            "name": "imagePath",
                            "rawdesc": "Path to image file",
                            "start": [
                                55,
                                24
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get a cached image without loading\n\n@*param* `imagePath` — Path to image file\n\n@*return* — Cached image or nil if not found",
                    "finish": [
                        63,
                        3
                    ],
                    "rawdesc": " Get a cached image without loading",
                    "returns": [
                        {
                            "desc": "Cached image or nil if not found",
                            "rawdesc": "Cached image or nil if not found",
                            "type": "function.return",
                            "view": "love.Image|nil"
                        }
                    ],
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageCache.get(imagePath: string)\n  -> love.Image|nil"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    55,
                    23
                ],
                "name": "get",
                "rawdesc": " Get a cached image without loading",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get cached ImageData for an image\n\n@*param* `imagePath` — Path to image file\n\n@*return* — Cached ImageData or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Path to image file",
                            "finish": [
                                68,
                                42
                            ],
                            "name": "imagePath",
                            "rawdesc": "Path to image file",
                            "start": [
                                68,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get cached ImageData for an image\n\n@*param* `imagePath` — Path to image file\n\n@*return* — Cached ImageData or nil if not found",
                    "finish": [
                        76,
                        3
                    ],
                    "rawdesc": " Get cached ImageData for an image",
                    "returns": [
                        {
                            "desc": "Cached ImageData or nil if not found",
                            "rawdesc": "Cached ImageData or nil if not found",
                            "type": "function.return",
                            "view": "love.ImageData|nil"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageCache.getImageData(imagePath: string)\n  -> love.ImageData|nil"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    68,
                    32
                ],
                "name": "getImageData",
                "rawdesc": " Get cached ImageData for an image",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get cache statistics\n\n@*return* — Cache stats",
                "extends": {
                    "args": [],
                    "desc": " Get cache statistics\n\n@*return* — Cache stats",
                    "finish": [
                        133,
                        3
                    ],
                    "rawdesc": " Get cache statistics",
                    "returns": [
                        {
                            "desc": "Cache stats",
                            "rawdesc": "Cache stats",
                            "type": "function.return",
                            "view": "{ count: number, memoryEstimate: number }"
                        }
                    ],
                    "start": [
                        116,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageCache.getStats()\n  -> { count: number, memoryEstimate: number }"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    116,
                    28
                ],
                "name": "getStats",
                "rawdesc": " Get cache statistics",
                "start": [
                    116,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Load an image from file path with caching\n Returns cached image if already loaded, otherwise loads and caches it\n\n@*param* `imagePath` — Path to image file\n\n@*param* `loadImageData` — Optional: also load ImageData for pixel access (default: false)\n\n@*return* — Image object or nil on error\n\n@*return* — Error message if loading failed",
                "extends": {
                    "args": [
                        {
                            "desc": "Path to image file",
                            "finish": [
                                18,
                                34
                            ],
                            "name": "imagePath",
                            "rawdesc": "Path to image file",
                            "start": [
                                18,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Optional: also load ImageData for pixel access (default: false)",
                            "finish": [
                                18,
                                49
                            ],
                            "name": "loadImageData",
                            "rawdesc": "Optional: also load ImageData for pixel access (default: false)",
                            "start": [
                                18,
                                36
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": " Load an image from file path with caching\n Returns cached image if already loaded, otherwise loads and caches it\n\n@*param* `imagePath` — Path to image file\n\n@*param* `loadImageData` — Optional: also load ImageData for pixel access (default: false)\n\n@*return* — Image object or nil on error\n\n@*return* — Error message if loading failed",
                    "finish": [
                        50,
                        3
                    ],
                    "rawdesc": " Load an image from file path with caching\n Returns cached image if already loaded, otherwise loads and caches it",
                    "returns": [
                        {
                            "desc": "Image object or nil on error",
                            "rawdesc": "Image object or nil on error",
                            "type": "function.return",
                            "view": "love.Image|nil"
                        },
                        {
                            "desc": "Error message if loading failed",
                            "rawdesc": "Error message if loading failed",
                            "type": "function.return",
                            "view": "string|nil"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageCache.load(imagePath: string, loadImageData?: boolean)\n  -> love.Image|nil\n  2. string|nil"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    18,
                    24
                ],
                "name": "load",
                "rawdesc": " Load an image from file path with caching\n Returns cached image if already loaded, otherwise loads and caches it",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Remove a specific image from cache\n\n@*param* `imagePath` — Path to image file to remove\n\n@*return* — True if image was removed, false if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Path to image file to remove",
                            "finish": [
                                81,
                                36
                            ],
                            "name": "imagePath",
                            "rawdesc": "Path to image file to remove",
                            "start": [
                                81,
                                27
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Remove a specific image from cache\n\n@*param* `imagePath` — Path to image file to remove\n\n@*return* — True if image was removed, false if not found",
                    "finish": [
                        99,
                        3
                    ],
                    "rawdesc": " Remove a specific image from cache",
                    "returns": [
                        {
                            "desc": "True if image was removed, false if not found",
                            "rawdesc": "True if image was removed, false if not found",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageCache.remove(imagePath: string)\n  -> boolean"
                },
                "file": "modules/ImageCache.lua",
                "finish": [
                    81,
                    26
                ],
                "name": "remove",
                "rawdesc": " Remove a specific image from cache",
                "start": [
                    81,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ImageCache",
        "type": "type",
        "view": "ImageCache"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/ImageRenderer.lua",
                "finish": [
                    8,
                    23
                ],
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "ImageRenderer",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Parse object-position string into normalized coordinates (0-1)\n Supports keywords (center, top, bottom, left, right) and percentages\n\n@*param* `position` — Position string like \"center center\", \"top left\", \"50% 50%\"\n\n@*return* — Normalized X and Y positions (0-1)",
                "extends": {
                    "args": [
                        {
                            "desc": "Position string like \"center center\", \"top left\", \"50% 50%\"",
                            "finish": [
                                116,
                                46
                            ],
                            "name": "position",
                            "rawdesc": "Position string like \"center center\", \"top left\", \"50% 50%\"",
                            "start": [
                                116,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Parse object-position string into normalized coordinates (0-1)\n Supports keywords (center, top, bottom, left, right) and percentages\n\n@*param* `position` — Position string like \"center center\", \"top left\", \"50% 50%\"\n\n@*return* — Normalized X and Y positions (0-1)",
                    "finish": [
                        175,
                        3
                    ],
                    "rawdesc": " Parse object-position string into normalized coordinates (0-1)\n Supports keywords (center, top, bottom, left, right) and percentages",
                    "returns": [
                        {
                            "desc": "Normalized X and Y positions (0-1)",
                            "rawdesc": "Normalized X and Y positions (0-1)",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Normalized X and Y positions (0-1)",
                            "rawdesc": "Normalized X and Y positions (0-1)",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        116,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageRenderer._parsePosition(position: string)\n  -> number\n  2. number"
                },
                "file": "modules/ImageRenderer.lua",
                "finish": [
                    116,
                    37
                ],
                "name": "_parsePosition",
                "rawdesc": " Parse object-position string into normalized coordinates (0-1)\n Supports keywords (center, top, bottom, left, right) and percentages",
                "start": [
                    116,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Calculate rendering parameters for object-fit modes\n Returns source and destination rectangles for rendering\n\n@*param* `imageWidth` — Natural width of the image\n\n@*param* `imageHeight` — Natural height of the image\n\n@*param* `boundsWidth` — Width of the bounds to fit within\n\n@*param* `boundsHeight` — Height of the bounds to fit within\n\n@*param* `fitMode` — One of: \"fill\", \"contain\", \"cover\", \"scale-down\", \"none\" (default: \"fill\")\n\n@*param* `objectPosition` — Position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                "extends": {
                    "args": [
                        {
                            "desc": "Natural width of the image",
                            "finish": [
                                20,
                                46
                            ],
                            "name": "imageWidth",
                            "rawdesc": "Natural width of the image",
                            "start": [
                                20,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Natural height of the image",
                            "finish": [
                                20,
                                59
                            ],
                            "name": "imageHeight",
                            "rawdesc": "Natural height of the image",
                            "start": [
                                20,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Width of the bounds to fit within",
                            "finish": [
                                20,
                                72
                            ],
                            "name": "boundsWidth",
                            "rawdesc": "Width of the bounds to fit within",
                            "start": [
                                20,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Height of the bounds to fit within",
                            "finish": [
                                20,
                                86
                            ],
                            "name": "boundsHeight",
                            "rawdesc": "Height of the bounds to fit within",
                            "start": [
                                20,
                                74
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "One of: \"fill\", \"contain\", \"cover\", \"scale-down\", \"none\" (default: \"fill\")",
                            "finish": [
                                20,
                                95
                            ],
                            "name": "fitMode",
                            "rawdesc": "One of: \"fill\", \"contain\", \"cover\", \"scale-down\", \"none\" (default: \"fill\")",
                            "start": [
                                20,
                                88
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "desc": "Position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                            "finish": [
                                20,
                                111
                            ],
                            "name": "objectPosition",
                            "rawdesc": "Position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                            "start": [
                                20,
                                97
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": " Calculate rendering parameters for object-fit modes\n Returns source and destination rectangles for rendering\n\n@*param* `imageWidth` — Natural width of the image\n\n@*param* `imageHeight` — Natural height of the image\n\n@*param* `boundsWidth` — Width of the bounds to fit within\n\n@*param* `boundsHeight` — Height of the bounds to fit within\n\n@*param* `fitMode` — One of: \"fill\", \"contain\", \"cover\", \"scale-down\", \"none\" (default: \"fill\")\n\n@*param* `objectPosition` — Position like \"center center\", \"top left\", \"50% 50%\" (default: \"center center\")",
                    "finish": [
                        110,
                        3
                    ],
                    "rawdesc": " Calculate rendering parameters for object-fit modes\n Returns source and destination rectangles for rendering",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "{ sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number, scaleX: number, scaleY: number }"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageRenderer.calculateFit(imageWidth: number, imageHeight: number, boundsWidth: number, boundsHeight: number, fitMode?: string, objectPosition?: string)\n  -> { sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number, scaleX: number, scaleY: number }"
                },
                "file": "modules/ImageRenderer.lua",
                "finish": [
                    20,
                    35
                ],
                "name": "calculateFit",
                "rawdesc": " Calculate rendering parameters for object-fit modes\n Returns source and destination rectangles for rendering",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw an image with specified object-fit mode\n\n@*param* `image` — Image to draw\n\n@*param* `x` — X position of bounds\n\n@*param* `y` — Y position of bounds\n\n@*param* `width` — Width of bounds\n\n@*param* `height` — Height of bounds\n\n@*param* `fitMode` — Object-fit mode (default: \"fill\")\n\n@*param* `objectPosition` — Object-position (default: \"center center\")\n\n@*param* `opacity` — Opacity 0-1 (default: 1)",
                "extends": {
                    "args": [
                        {
                            "desc": "Image to draw",
                            "finish": [
                                186,
                                33
                            ],
                            "name": "image",
                            "rawdesc": "Image to draw",
                            "start": [
                                186,
                                28
                            ],
                            "type": "local",
                            "view": "love.Image"
                        },
                        {
                            "desc": "X position of bounds",
                            "finish": [
                                186,
                                36
                            ],
                            "name": "x",
                            "rawdesc": "X position of bounds",
                            "start": [
                                186,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position of bounds",
                            "finish": [
                                186,
                                39
                            ],
                            "name": "y",
                            "rawdesc": "Y position of bounds",
                            "start": [
                                186,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Width of bounds",
                            "finish": [
                                186,
                                46
                            ],
                            "name": "width",
                            "rawdesc": "Width of bounds",
                            "start": [
                                186,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Height of bounds",
                            "finish": [
                                186,
                                54
                            ],
                            "name": "height",
                            "rawdesc": "Height of bounds",
                            "start": [
                                186,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Object-fit mode (default: \"fill\")",
                            "finish": [
                                186,
                                63
                            ],
                            "name": "fitMode",
                            "rawdesc": "Object-fit mode (default: \"fill\")",
                            "start": [
                                186,
                                56
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "desc": "Object-position (default: \"center center\")",
                            "finish": [
                                186,
                                79
                            ],
                            "name": "objectPosition",
                            "rawdesc": "Object-position (default: \"center center\")",
                            "start": [
                                186,
                                65
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "desc": "Opacity 0-1 (default: 1)",
                            "finish": [
                                186,
                                88
                            ],
                            "name": "opacity",
                            "rawdesc": "Opacity 0-1 (default: 1)",
                            "start": [
                                186,
                                81
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Draw an image with specified object-fit mode\n\n@*param* `image` — Image to draw\n\n@*param* `x` — X position of bounds\n\n@*param* `y` — Y position of bounds\n\n@*param* `width` — Width of bounds\n\n@*param* `height` — Height of bounds\n\n@*param* `fitMode` — Object-fit mode (default: \"fill\")\n\n@*param* `objectPosition` — Object-position (default: \"center center\")\n\n@*param* `opacity` — Opacity 0-1 (default: 1)",
                    "finish": [
                        216,
                        3
                    ],
                    "rawdesc": " Draw an image with specified object-fit mode",
                    "start": [
                        186,
                        0
                    ],
                    "type": "function",
                    "view": "function ImageRenderer.draw(image: love.Image, x: number, y: number, width: number, height: number, fitMode?: string, objectPosition?: string, opacity?: number)"
                },
                "file": "modules/ImageRenderer.lua",
                "finish": [
                    186,
                    27
                ],
                "name": "draw",
                "rawdesc": " Draw an image with specified object-fit mode",
                "start": [
                    186,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ImageRenderer",
        "type": "type",
        "view": "ImageRenderer"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/InputEvent.lua",
                "finish": [
                    0,
                    20
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "InputEvent",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        11,
                        31
                    ],
                    "start": [
                        11,
                        21
                    ],
                    "type": "getlocal",
                    "view": "InputEvent"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    11,
                    18
                ],
                "name": "__index",
                "start": [
                    11,
                    0
                ],
                "type": "setfield",
                "view": "InputEvent",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Mouse button: 1 (left), 2 (right), 3 (middle)",
                "extends": {
                    "finish": [
                        2,
                        23
                    ],
                    "start": [
                        2,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                2,
                                23
                            ],
                            "start": [
                                2,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    2,
                    23
                ],
                "name": "button",
                "rawdesc": "Mouse button: 1 (left), 2 (right), 3 (middle)",
                "start": [
                    2,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of clicks (for double/triple click detection)",
                "extends": {
                    "finish": [
                        8,
                        27
                    ],
                    "start": [
                        8,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                27
                            ],
                            "start": [
                                8,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    8,
                    27
                ],
                "name": "clickCount",
                "rawdesc": "Number of clicks (for double/triple click detection)",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Delta X from drag start (only for drag events)",
                "extends": {
                    "finish": [
                        5,
                        20
                    ],
                    "start": [
                        5,
                        13
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                5,
                                19
                            ],
                            "start": [
                                5,
                                13
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    5,
                    20
                ],
                "name": "dx",
                "rawdesc": "Delta X from drag start (only for drag events)",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Delta Y from drag start (only for drag events)",
                "extends": {
                    "finish": [
                        6,
                        20
                    ],
                    "start": [
                        6,
                        13
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                19
                            ],
                            "start": [
                                6,
                                13
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    6,
                    20
                ],
                "name": "dy",
                "rawdesc": "Delta Y from drag start (only for drag events)",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        7,
                        77
                    ],
                    "start": [
                        7,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        7,
                                        34
                                    ],
                                    "name": {
                                        "[1]": "shift",
                                        "finish": [
                                            7,
                                            26
                                        ],
                                        "start": [
                                            7,
                                            21
                                        ],
                                        "type": "doc.field.name",
                                        "view": "shift"
                                    },
                                    "start": [
                                        7,
                                        21
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        7,
                                        48
                                    ],
                                    "name": {
                                        "[1]": "ctrl",
                                        "finish": [
                                            7,
                                            40
                                        ],
                                        "start": [
                                            7,
                                            36
                                        ],
                                        "type": "doc.field.name",
                                        "view": "ctrl"
                                    },
                                    "start": [
                                        7,
                                        36
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        7,
                                        61
                                    ],
                                    "name": {
                                        "[1]": "alt",
                                        "finish": [
                                            7,
                                            53
                                        ],
                                        "start": [
                                            7,
                                            50
                                        ],
                                        "type": "doc.field.name",
                                        "view": "alt"
                                    },
                                    "start": [
                                        7,
                                        50
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        7,
                                        76
                                    ],
                                    "name": {
                                        "[1]": "super",
                                        "finish": [
                                            7,
                                            68
                                        ],
                                        "start": [
                                            7,
                                            63
                                        ],
                                        "type": "doc.field.name",
                                        "view": "super"
                                    },
                                    "start": [
                                        7,
                                        63
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                }
                            ],
                            "finish": [
                                7,
                                77
                            ],
                            "start": [
                                7,
                                20
                            ],
                            "type": "doc.type.table",
                            "view": "{ shift: boolean, ctrl: boolean, alt: boolean, super: boolean }"
                        }
                    ],
                    "view": "{ shift: boolean, ctrl: boolean, alt: boolean, super: boolean }"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    7,
                    77
                ],
                "name": "modifiers",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "{ shift: boolean, ctrl: boolean, alt: boolean, super: boolean }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a new input event",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                27,
                                29
                            ],
                            "name": "props",
                            "start": [
                                27,
                                24
                            ],
                            "type": "local",
                            "view": "InputEventProps"
                        }
                    ],
                    "desc": " Create a new input event",
                    "finish": [
                        39,
                        3
                    ],
                    "rawdesc": " Create a new input event",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "InputEvent"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function InputEvent.new(props: InputEventProps)\n  -> InputEvent"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    27,
                    23
                ],
                "name": "new",
                "rawdesc": " Create a new input event",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Time when event occurred",
                "extends": {
                    "finish": [
                        9,
                        26
                    ],
                    "start": [
                        9,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                26
                            ],
                            "start": [
                                9,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    9,
                    26
                ],
                "name": "timestamp",
                "rawdesc": "Time when event occurred",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        1,
                        74
                    ],
                    "start": [
                        1,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                1,
                                22
                            ],
                            "start": [
                                1,
                                15
                            ],
                            "type": "doc.type.string",
                            "view": "\"click\""
                        },
                        {
                            "finish": [
                                1,
                                30
                            ],
                            "start": [
                                1,
                                23
                            ],
                            "type": "doc.type.string",
                            "view": "\"press\""
                        },
                        {
                            "finish": [
                                1,
                                40
                            ],
                            "start": [
                                1,
                                31
                            ],
                            "type": "doc.type.string",
                            "view": "\"release\""
                        },
                        {
                            "finish": [
                                1,
                                53
                            ],
                            "start": [
                                1,
                                41
                            ],
                            "type": "doc.type.string",
                            "view": "\"rightclick\""
                        },
                        {
                            "finish": [
                                1,
                                67
                            ],
                            "start": [
                                1,
                                54
                            ],
                            "type": "doc.type.string",
                            "view": "\"middleclick\""
                        },
                        {
                            "finish": [
                                1,
                                74
                            ],
                            "start": [
                                1,
                                68
                            ],
                            "type": "doc.type.string",
                            "view": "\"drag\""
                        }
                    ],
                    "view": "\"click\"|\"drag\"|\"middleclick\"|\"press\"|\"release\"...(+1)"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    1,
                    74
                ],
                "name": "type",
                "start": [
                    1,
                    10
                ],
                "type": "doc.field",
                "view": "\"click\"|\"drag\"|\"middleclick\"|\"press\"|\"release\"...(+1)",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Mouse X position",
                "extends": {
                    "finish": [
                        3,
                        18
                    ],
                    "start": [
                        3,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                18
                            ],
                            "start": [
                                3,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    3,
                    18
                ],
                "name": "x",
                "rawdesc": "Mouse X position",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Mouse Y position",
                "extends": {
                    "finish": [
                        4,
                        18
                    ],
                    "start": [
                        4,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                18
                            ],
                            "start": [
                                4,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    4,
                    18
                ],
                "name": "y",
                "rawdesc": "Mouse Y position",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            }
        ],
        "name": "InputEvent",
        "type": "type",
        "view": "InputEvent"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/InputEvent.lua",
                "finish": [
                    13,
                    25
                ],
                "start": [
                    13,
                    10
                ],
                "type": "doc.class",
                "view": "InputEventProps",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        23
                    ],
                    "start": [
                        15,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                23
                            ],
                            "start": [
                                15,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    15,
                    23
                ],
                "name": "button",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        21,
                        28
                    ],
                    "start": [
                        21,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                27
                            ],
                            "start": [
                                21,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    21,
                    28
                ],
                "name": "clickCount",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        20
                    ],
                    "start": [
                        18,
                        13
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                19
                            ],
                            "start": [
                                18,
                                13
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    18,
                    20
                ],
                "name": "dx",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        19,
                        20
                    ],
                    "start": [
                        19,
                        13
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                19,
                                19
                            ],
                            "start": [
                                19,
                                13
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    19,
                    20
                ],
                "name": "dy",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        20,
                        77
                    ],
                    "start": [
                        20,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        20,
                                        34
                                    ],
                                    "name": {
                                        "[1]": "shift",
                                        "finish": [
                                            20,
                                            26
                                        ],
                                        "start": [
                                            20,
                                            21
                                        ],
                                        "type": "doc.field.name",
                                        "view": "shift"
                                    },
                                    "start": [
                                        20,
                                        21
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        20,
                                        48
                                    ],
                                    "name": {
                                        "[1]": "ctrl",
                                        "finish": [
                                            20,
                                            40
                                        ],
                                        "start": [
                                            20,
                                            36
                                        ],
                                        "type": "doc.field.name",
                                        "view": "ctrl"
                                    },
                                    "start": [
                                        20,
                                        36
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        20,
                                        61
                                    ],
                                    "name": {
                                        "[1]": "alt",
                                        "finish": [
                                            20,
                                            53
                                        ],
                                        "start": [
                                            20,
                                            50
                                        ],
                                        "type": "doc.field.name",
                                        "view": "alt"
                                    },
                                    "start": [
                                        20,
                                        50
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        20,
                                        76
                                    ],
                                    "name": {
                                        "[1]": "super",
                                        "finish": [
                                            20,
                                            68
                                        ],
                                        "start": [
                                            20,
                                            63
                                        ],
                                        "type": "doc.field.name",
                                        "view": "super"
                                    },
                                    "start": [
                                        20,
                                        63
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                }
                            ],
                            "finish": [
                                20,
                                77
                            ],
                            "start": [
                                20,
                                20
                            ],
                            "type": "doc.type.table",
                            "view": "{ shift: boolean, ctrl: boolean, alt: boolean, super: boolean }"
                        }
                    ],
                    "view": "{ shift: boolean, ctrl: boolean, alt: boolean, super: boolean }"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    20,
                    77
                ],
                "name": "modifiers",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "{ shift: boolean, ctrl: boolean, alt: boolean, super: boolean }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        27
                    ],
                    "start": [
                        22,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                26
                            ],
                            "start": [
                                22,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    22,
                    27
                ],
                "name": "timestamp",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        14,
                        74
                    ],
                    "start": [
                        14,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                22
                            ],
                            "start": [
                                14,
                                15
                            ],
                            "type": "doc.type.string",
                            "view": "\"click\""
                        },
                        {
                            "finish": [
                                14,
                                30
                            ],
                            "start": [
                                14,
                                23
                            ],
                            "type": "doc.type.string",
                            "view": "\"press\""
                        },
                        {
                            "finish": [
                                14,
                                40
                            ],
                            "start": [
                                14,
                                31
                            ],
                            "type": "doc.type.string",
                            "view": "\"release\""
                        },
                        {
                            "finish": [
                                14,
                                53
                            ],
                            "start": [
                                14,
                                41
                            ],
                            "type": "doc.type.string",
                            "view": "\"rightclick\""
                        },
                        {
                            "finish": [
                                14,
                                67
                            ],
                            "start": [
                                14,
                                54
                            ],
                            "type": "doc.type.string",
                            "view": "\"middleclick\""
                        },
                        {
                            "finish": [
                                14,
                                74
                            ],
                            "start": [
                                14,
                                68
                            ],
                            "type": "doc.type.string",
                            "view": "\"drag\""
                        }
                    ],
                    "view": "\"click\"|\"drag\"|\"middleclick\"|\"press\"|\"release\"...(+1)"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    14,
                    74
                ],
                "name": "type",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "\"click\"|\"drag\"|\"middleclick\"|\"press\"|\"release\"...(+1)",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        18
                    ],
                    "start": [
                        16,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                16,
                                18
                            ],
                            "start": [
                                16,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    16,
                    18
                ],
                "name": "x",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        17,
                        18
                    ],
                    "start": [
                        17,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                18
                            ],
                            "start": [
                                17,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/InputEvent.lua",
                "finish": [
                    17,
                    18
                ],
                "name": "y",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            }
        ],
        "name": "InputEventProps",
        "type": "type",
        "view": "InputEventProps"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    0,
                    22
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "LayoutEngine",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        19,
                        29
                    ],
                    "start": [
                        19,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                19,
                                29
                            ],
                            "start": [
                                19,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    19,
                    29
                ],
                "name": "_AlignContent",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        20,
                        27
                    ],
                    "start": [
                        20,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                20,
                                27
                            ],
                            "start": [
                                20,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    20,
                    27
                ],
                "name": "_AlignItems",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        21,
                        26
                    ],
                    "start": [
                        21,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                26
                            ],
                            "start": [
                                21,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    21,
                    26
                ],
                "name": "_AlignSelf",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        24
                    ],
                    "start": [
                        15,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                24
                            ],
                            "start": [
                                15,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    15,
                    24
                ],
                "name": "_Context",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        17,
                        30
                    ],
                    "start": [
                        17,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                30
                            ],
                            "start": [
                                17,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    17,
                    30
                ],
                "name": "_FlexDirection",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        25
                    ],
                    "start": [
                        22,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                25
                            ],
                            "start": [
                                22,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    22,
                    25
                ],
                "name": "_FlexWrap",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        13,
                        21
                    ],
                    "start": [
                        13,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                21
                            ],
                            "start": [
                                13,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    13,
                    21
                ],
                "name": "_Grid",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        31
                    ],
                    "start": [
                        18,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                31
                            ],
                            "start": [
                                18,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    18,
                    31
                ],
                "name": "_JustifyContent",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        28
                    ],
                    "start": [
                        16,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                16,
                                28
                            ],
                            "start": [
                                16,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    16,
                    28
                ],
                "name": "_Positioning",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        14,
                        22
                    ],
                    "start": [
                        14,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                22
                            ],
                            "start": [
                                14,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    14,
                    22
                ],
                "name": "_Units",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        24,
                        35
                    ],
                    "start": [
                        24,
                        23
                    ],
                    "type": "getlocal",
                    "view": "LayoutEngine"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    24,
                    20
                ],
                "name": "__index",
                "start": [
                    24,
                    0
                ],
                "type": "setfield",
                "view": "LayoutEngine",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of lines in multi-line flex containers",
                "extends": {
                    "finish": [
                        6,
                        35
                    ],
                    "start": [
                        6,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                35
                            ],
                            "start": [
                                6,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "AlignContent"
                        }
                    ],
                    "view": "AlignContent"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    6,
                    35
                ],
                "name": "alignContent",
                "rawdesc": "Alignment of lines in multi-line flex containers",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "AlignContent",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along cross axis",
                "extends": {
                    "finish": [
                        5,
                        31
                    ],
                    "start": [
                        5,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                5,
                                31
                            ],
                            "start": [
                                5,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "AlignItems"
                        }
                    ],
                    "view": "AlignItems"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    5,
                    31
                ],
                "name": "alignItems",
                "rawdesc": "Alignment of items along cross axis",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "AlignItems",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Apply CSS positioning offsets (top, right, bottom, left) to a child element\n\n@*param* `child` — The element to apply offsets to",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                97,
                                8
                            ],
                            "name": "self",
                            "start": [
                                97,
                                8
                            ],
                            "type": "self",
                            "view": "LayoutEngine"
                        },
                        {
                            "desc": "The element to apply offsets to",
                            "finish": [
                                97,
                                51
                            ],
                            "name": "child",
                            "rawdesc": "The element to apply offsets to",
                            "start": [
                                97,
                                46
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "desc": " Apply CSS positioning offsets (top, right, bottom, left) to a child element\n\n@*param* `child` — The element to apply offsets to",
                    "finish": [
                        140,
                        3
                    ],
                    "rawdesc": " Apply CSS positioning offsets (top, right, bottom, left) to a child element",
                    "start": [
                        97,
                        0
                    ],
                    "type": "function",
                    "view": "(method) LayoutEngine:applyPositioningOffsets(child: Element)"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    97,
                    45
                ],
                "name": "applyPositioningOffsets",
                "rawdesc": " Apply CSS positioning offsets (top, right, bottom, left) to a child element",
                "start": [
                    97,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                617,
                                8
                            ],
                            "name": "self",
                            "start": [
                                617,
                                8
                            ],
                            "type": "self",
                            "view": "LayoutEngine"
                        }
                    ],
                    "finish": [
                        655,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        617,
                        0
                    ],
                    "type": "function",
                    "view": "(method) LayoutEngine:calculateAutoHeight()\n  -> number"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    617,
                    41
                ],
                "name": "calculateAutoHeight",
                "start": [
                    617,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Calculate auto width based on children",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                575,
                                8
                            ],
                            "name": "self",
                            "start": [
                                575,
                                8
                            ],
                            "type": "self",
                            "view": "LayoutEngine"
                        }
                    ],
                    "desc": " Calculate auto width based on children",
                    "finish": [
                        614,
                        3
                    ],
                    "rawdesc": " Calculate auto width based on children",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        575,
                        0
                    ],
                    "type": "function",
                    "view": "(method) LayoutEngine:calculateAutoWidth()\n  -> number"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    575,
                    40
                ],
                "name": "calculateAutoWidth",
                "rawdesc": " Calculate auto width based on children",
                "start": [
                    575,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid columns",
                "extends": {
                    "finish": [
                        11,
                        27
                    ],
                    "start": [
                        11,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                26
                            ],
                            "start": [
                                11,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    11,
                    27
                ],
                "name": "columnGap",
                "rawdesc": "Gap between grid columns",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Reference to the parent element",
                "extends": {
                    "finish": [
                        1,
                        26
                    ],
                    "start": [
                        1,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                1,
                                25
                            ],
                            "start": [
                                1,
                                18
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    1,
                    26
                ],
                "name": "element",
                "rawdesc": "Reference to the parent element",
                "start": [
                    1,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Direction of flex layout",
                "extends": {
                    "finish": [
                        3,
                        37
                    ],
                    "start": [
                        3,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                37
                            ],
                            "start": [
                                3,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "FlexDirection"
                        }
                    ],
                    "view": "FlexDirection"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    3,
                    37
                ],
                "name": "flexDirection",
                "rawdesc": "Direction of flex layout",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "FlexDirection",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether children wrap to multiple lines",
                "extends": {
                    "finish": [
                        7,
                        27
                    ],
                    "start": [
                        7,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                27
                            ],
                            "start": [
                                7,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "FlexWrap"
                        }
                    ],
                    "view": "FlexWrap"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    7,
                    27
                ],
                "name": "flexWrap",
                "rawdesc": "Whether children wrap to multiple lines",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "FlexWrap",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Space between children elements",
                "extends": {
                    "finish": [
                        8,
                        20
                    ],
                    "start": [
                        8,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                20
                            ],
                            "start": [
                                8,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    8,
                    20
                ],
                "name": "gap",
                "rawdesc": "Space between children elements",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of columns in the grid",
                "extends": {
                    "finish": [
                        10,
                        29
                    ],
                    "start": [
                        10,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                10,
                                28
                            ],
                            "start": [
                                10,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    10,
                    29
                ],
                "name": "gridColumns",
                "rawdesc": "Number of columns in the grid",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of rows in the grid",
                "extends": {
                    "finish": [
                        9,
                        26
                    ],
                    "start": [
                        9,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                25
                            ],
                            "start": [
                                9,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    9,
                    26
                ],
                "name": "gridRows",
                "rawdesc": "Number of rows in the grid",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Initialize the LayoutEngine with its parent element\n\n@*param* `element` — The parent element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                91,
                                8
                            ],
                            "name": "self",
                            "start": [
                                91,
                                8
                            ],
                            "type": "self",
                            "view": "LayoutEngine"
                        },
                        {
                            "desc": "The parent element",
                            "finish": [
                                91,
                                40
                            ],
                            "name": "element",
                            "rawdesc": "The parent element",
                            "start": [
                                91,
                                33
                            ],
                            "type": "local",
                            "view": "Element"
                        }
                    ],
                    "desc": " Initialize the LayoutEngine with its parent element\n\n@*param* `element` — The parent element",
                    "finish": [
                        93,
                        3
                    ],
                    "rawdesc": " Initialize the LayoutEngine with its parent element",
                    "start": [
                        91,
                        0
                    ],
                    "type": "function",
                    "view": "(method) LayoutEngine:initialize(element: Element)"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    91,
                    32
                ],
                "name": "initialize",
                "rawdesc": " Initialize the LayoutEngine with its parent element",
                "start": [
                    91,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along main axis",
                "extends": {
                    "finish": [
                        4,
                        39
                    ],
                    "start": [
                        4,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                39
                            ],
                            "start": [
                                4,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "JustifyContent"
                        }
                    ],
                    "view": "JustifyContent"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    4,
                    39
                ],
                "name": "justifyContent",
                "rawdesc": "Alignment of items along main axis",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "JustifyContent",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Layout children within this element according to positioning mode",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                143,
                                8
                            ],
                            "name": "self",
                            "start": [
                                143,
                                8
                            ],
                            "type": "self",
                            "view": "LayoutEngine"
                        }
                    ],
                    "desc": " Layout children within this element according to positioning mode",
                    "finish": [
                        571,
                        3
                    ],
                    "rawdesc": " Layout children within this element according to positioning mode",
                    "start": [
                        143,
                        0
                    ],
                    "type": "function",
                    "view": "(method) LayoutEngine:layoutChildren()"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    143,
                    36
                ],
                "name": "layoutChildren",
                "rawdesc": " Layout children within this element according to positioning mode",
                "start": [
                    143,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a new LayoutEngine instance\n\n@*param* `deps` — Dependencies {utils, Grid, Units, Context}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                43,
                                31
                            ],
                            "name": "props",
                            "start": [
                                43,
                                26
                            ],
                            "type": "local",
                            "view": "LayoutEngineProps"
                        },
                        {
                            "desc": "Dependencies {utils, Grid, Units, Context}",
                            "finish": [
                                43,
                                37
                            ],
                            "name": "deps",
                            "rawdesc": "Dependencies {utils, Grid, Units, Context}",
                            "start": [
                                43,
                                33
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Create a new LayoutEngine instance\n\n@*param* `deps` — Dependencies {utils, Grid, Units, Context}",
                    "finish": [
                        87,
                        3
                    ],
                    "rawdesc": " Create a new LayoutEngine instance",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "LayoutEngine"
                        }
                    ],
                    "start": [
                        43,
                        0
                    ],
                    "type": "function",
                    "view": "function LayoutEngine.new(props: LayoutEngineProps, deps: table)\n  -> LayoutEngine"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    43,
                    25
                ],
                "name": "new",
                "rawdesc": " Create a new LayoutEngine instance",
                "start": [
                    43,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Layout positioning mode",
                "extends": {
                    "finish": [
                        2,
                        33
                    ],
                    "start": [
                        2,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                2,
                                33
                            ],
                            "start": [
                                2,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Positioning"
                        }
                    ],
                    "view": "Positioning"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    2,
                    33
                ],
                "name": "positioning",
                "rawdesc": "Layout positioning mode",
                "start": [
                    2,
                    10
                ],
                "type": "doc.field",
                "view": "Positioning",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Recalculate units based on new viewport dimensions (for vw, vh, % units)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                660,
                                8
                            ],
                            "name": "self",
                            "start": [
                                660,
                                8
                            ],
                            "type": "self",
                            "view": "LayoutEngine"
                        },
                        {
                            "finish": [
                                660,
                                55
                            ],
                            "name": "newViewportWidth",
                            "start": [
                                660,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                660,
                                74
                            ],
                            "name": "newViewportHeight",
                            "start": [
                                660,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Recalculate units based on new viewport dimensions (for vw, vh, % units)",
                    "finish": [
                        940,
                        3
                    ],
                    "rawdesc": " Recalculate units based on new viewport dimensions (for vw, vh, % units)",
                    "start": [
                        660,
                        0
                    ],
                    "type": "function",
                    "view": "(method) LayoutEngine:recalculateUnits(newViewportWidth: number, newViewportHeight: number)"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    660,
                    38
                ],
                "name": "recalculateUnits",
                "rawdesc": " Recalculate units based on new viewport dimensions (for vw, vh, % units)",
                "start": [
                    660,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid rows",
                "extends": {
                    "finish": [
                        12,
                        24
                    ],
                    "start": [
                        12,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                23
                            ],
                            "start": [
                                12,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    12,
                    24
                ],
                "name": "rowGap",
                "rawdesc": "Gap between grid rows",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            }
        ],
        "name": "LayoutEngine",
        "type": "type",
        "view": "LayoutEngine"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    26,
                    27
                ],
                "start": [
                    26,
                    10
                ],
                "type": "doc.class",
                "view": "LayoutEngineProps",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of lines in multi-line flex containers (default: STRETCH)",
                "extends": {
                    "finish": [
                        31,
                        36
                    ],
                    "start": [
                        31,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                31,
                                35
                            ],
                            "start": [
                                31,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "AlignContent"
                        }
                    ],
                    "view": "AlignContent?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    31,
                    36
                ],
                "name": "alignContent",
                "rawdesc": "Alignment of lines in multi-line flex containers (default: STRETCH)",
                "start": [
                    31,
                    10
                ],
                "type": "doc.field",
                "view": "AlignContent?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along cross axis (default: STRETCH)",
                "extends": {
                    "finish": [
                        30,
                        32
                    ],
                    "start": [
                        30,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                30,
                                31
                            ],
                            "start": [
                                30,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "AlignItems"
                        }
                    ],
                    "view": "AlignItems?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    30,
                    32
                ],
                "name": "alignItems",
                "rawdesc": "Alignment of items along cross axis (default: STRETCH)",
                "start": [
                    30,
                    10
                ],
                "type": "doc.field",
                "view": "AlignItems?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid columns",
                "extends": {
                    "finish": [
                        36,
                        27
                    ],
                    "start": [
                        36,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                36,
                                26
                            ],
                            "start": [
                                36,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    36,
                    27
                ],
                "name": "columnGap",
                "rawdesc": "Gap between grid columns",
                "start": [
                    36,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Direction of flex layout (default: HORIZONTAL)",
                "extends": {
                    "finish": [
                        28,
                        38
                    ],
                    "start": [
                        28,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                28,
                                37
                            ],
                            "start": [
                                28,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "FlexDirection"
                        }
                    ],
                    "view": "FlexDirection?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    28,
                    38
                ],
                "name": "flexDirection",
                "rawdesc": "Direction of flex layout (default: HORIZONTAL)",
                "start": [
                    28,
                    10
                ],
                "type": "doc.field",
                "view": "FlexDirection?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether children wrap to multiple lines (default: NOWRAP)",
                "extends": {
                    "finish": [
                        32,
                        28
                    ],
                    "start": [
                        32,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                32,
                                27
                            ],
                            "start": [
                                32,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "FlexWrap"
                        }
                    ],
                    "view": "FlexWrap?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    32,
                    28
                ],
                "name": "flexWrap",
                "rawdesc": "Whether children wrap to multiple lines (default: NOWRAP)",
                "start": [
                    32,
                    10
                ],
                "type": "doc.field",
                "view": "FlexWrap?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Space between children elements (default: 10)",
                "extends": {
                    "finish": [
                        33,
                        21
                    ],
                    "start": [
                        33,
                        14
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                33,
                                20
                            ],
                            "start": [
                                33,
                                14
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    33,
                    21
                ],
                "name": "gap",
                "rawdesc": "Space between children elements (default: 10)",
                "start": [
                    33,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of columns in the grid",
                "extends": {
                    "finish": [
                        35,
                        29
                    ],
                    "start": [
                        35,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                35,
                                28
                            ],
                            "start": [
                                35,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    35,
                    29
                ],
                "name": "gridColumns",
                "rawdesc": "Number of columns in the grid",
                "start": [
                    35,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Number of rows in the grid",
                "extends": {
                    "finish": [
                        34,
                        26
                    ],
                    "start": [
                        34,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                34,
                                25
                            ],
                            "start": [
                                34,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    34,
                    26
                ],
                "name": "gridRows",
                "rawdesc": "Number of rows in the grid",
                "start": [
                    34,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Alignment of items along main axis (default: FLEX_START)",
                "extends": {
                    "finish": [
                        29,
                        40
                    ],
                    "start": [
                        29,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                29,
                                39
                            ],
                            "start": [
                                29,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "JustifyContent"
                        }
                    ],
                    "view": "JustifyContent?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    29,
                    40
                ],
                "name": "justifyContent",
                "rawdesc": "Alignment of items along main axis (default: FLEX_START)",
                "start": [
                    29,
                    10
                ],
                "type": "doc.field",
                "view": "JustifyContent?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Layout positioning mode (default: RELATIVE)",
                "extends": {
                    "finish": [
                        27,
                        34
                    ],
                    "start": [
                        27,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                27,
                                33
                            ],
                            "start": [
                                27,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Positioning"
                        }
                    ],
                    "view": "Positioning?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    27,
                    34
                ],
                "name": "positioning",
                "rawdesc": "Layout positioning mode (default: RELATIVE)",
                "start": [
                    27,
                    10
                ],
                "type": "doc.field",
                "view": "Positioning?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Gap between grid rows",
                "extends": {
                    "finish": [
                        37,
                        24
                    ],
                    "start": [
                        37,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                37,
                                23
                            ],
                            "start": [
                                37,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/LayoutEngine.lua",
                "finish": [
                    37,
                    24
                ],
                "name": "rowGap",
                "rawdesc": "Gap between grid rows",
                "start": [
                    37,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            }
        ],
        "name": "LayoutEngineProps",
        "type": "type",
        "view": "LayoutEngineProps"
    },
    {
        "DOC": "/Users/mike/Code/station_alpha/game/libs",
        "defines": [],
        "fields": [],
        "name": "LuaLS",
        "type": "luals.config"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Performance monitoring module for FlexLove\n Provides timing, profiling, and performance metrics",
                "file": "modules/Performance.lua",
                "finish": [
                    2,
                    21
                ],
                "rawdesc": " Performance monitoring module for FlexLove\n Provides timing, profiling, and performance metrics",
                "start": [
                    2,
                    10
                ],
                "type": "doc.class",
                "view": "Performance",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Add a performance warning\n\n@*param* `name` — Metric name\n\n@*param* `value` — Metric value\n\n@*param* `level` — Warning level\n\n```lua\nlevel:\n    | \"warning\"\n    | \"critical\"\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Metric name",
                            "finish": [
                                220,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "Metric name",
                            "start": [
                                220,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Metric value",
                            "finish": [
                                220,
                                43
                            ],
                            "name": "value",
                            "rawdesc": "Metric value",
                            "start": [
                                220,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Warning level",
                            "finish": [
                                220,
                                50
                            ],
                            "name": "level",
                            "rawdesc": "Warning level",
                            "start": [
                                220,
                                45
                            ],
                            "type": "local",
                            "view": "\"critical\"|\"warning\""
                        }
                    ],
                    "desc": " Add a performance warning\n\n@*param* `name` — Metric name\n\n@*param* `value` — Metric value\n\n@*param* `level` — Warning level\n\n```lua\nlevel:\n    | \"warning\"\n    | \"critical\"\n```",
                    "finish": [
                        236,
                        3
                    ],
                    "rawdesc": " Add a performance warning\n\n```lua\nlevel:\n    | \"warning\"\n    | \"critical\"\n```",
                    "start": [
                        220,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.addWarning(name: string, value: number, level: \"critical\"|\"warning\")"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    220,
                    31
                ],
                "name": "addWarning",
                "rawdesc": " Add a performance warning\n\n```lua\nlevel:\n    | \"warning\"\n    | \"critical\"\n```",
                "start": [
                    220,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Disable performance monitoring",
                "extends": {
                    "args": [],
                    "desc": " Disable performance monitoring",
                    "finish": [
                        57,
                        3
                    ],
                    "rawdesc": " Disable performance monitoring",
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.disable()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    55,
                    28
                ],
                "name": "disable",
                "rawdesc": " Disable performance monitoring",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Enable performance monitoring",
                "extends": {
                    "args": [],
                    "desc": " Enable performance monitoring",
                    "finish": [
                        52,
                        3
                    ],
                    "rawdesc": " Enable performance monitoring",
                    "start": [
                        50,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.enable()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    50,
                    27
                ],
                "name": "enable",
                "rawdesc": " Enable performance monitoring",
                "start": [
                    50,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " End frame timing (call at end of frame)",
                "extends": {
                    "args": [],
                    "desc": " End frame timing (call at end of frame)",
                    "finish": [
                        196,
                        3
                    ],
                    "rawdesc": " End frame timing (call at end of frame)",
                    "start": [
                        172,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.endFrame()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    172,
                    29
                ],
                "name": "endFrame",
                "rawdesc": " End frame timing (call at end of frame)",
                "start": [
                    172,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Export metrics to CSV format\n\n@*return* `csv` — CSV string of metrics",
                "extends": {
                    "args": [],
                    "desc": " Export metrics to CSV format\n\n@*return* `csv` — CSV string of metrics",
                    "finish": [
                        338,
                        3
                    ],
                    "rawdesc": " Export metrics to CSV format",
                    "returns": [
                        {
                            "desc": "CSV string of metrics",
                            "name": "csv",
                            "rawdesc": "CSV string of metrics",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        332,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.exportCSV()\n  -> csv: string"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    332,
                    30
                ],
                "name": "exportCSV",
                "rawdesc": " Export metrics to CSV format",
                "start": [
                    332,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Export metrics to JSON format\n\n@*return* `json` — JSON string of metrics",
                "extends": {
                    "args": [],
                    "desc": " Export metrics to JSON format\n\n@*return* `json` — JSON string of metrics",
                    "finish": [
                        328,
                        3
                    ],
                    "rawdesc": " Export metrics to JSON format",
                    "returns": [
                        {
                            "desc": "JSON string of metrics",
                            "name": "json",
                            "rawdesc": "JSON string of metrics",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        307,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.exportJSON()\n  -> json: string"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    307,
                    31
                ],
                "name": "exportJSON",
                "rawdesc": " Export metrics to JSON format",
                "start": [
                    307,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get configuration\n\n@*return* `config` — Current configuration",
                "extends": {
                    "args": [],
                    "desc": " Get configuration\n\n@*return* `config` — Current configuration",
                    "finish": [
                        425,
                        3
                    ],
                    "rawdesc": " Get configuration",
                    "returns": [
                        {
                            "desc": "Current configuration",
                            "name": "config",
                            "rawdesc": "Current configuration",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        423,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.getConfig()\n  -> config: table"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    423,
                    30
                ],
                "name": "getConfig",
                "rawdesc": " Get configuration",
                "start": [
                    423,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get current FPS\n\n@*return* `fps` — Frames per second",
                "extends": {
                    "args": [],
                    "desc": " Get current FPS\n\n@*return* `fps` — Frames per second",
                    "finish": [
                        242,
                        3
                    ],
                    "rawdesc": " Get current FPS",
                    "returns": [
                        {
                            "desc": "Frames per second",
                            "name": "fps",
                            "rawdesc": "Frames per second",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        240,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.getFPS()\n  -> fps: number"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    240,
                    27
                ],
                "name": "getFPS",
                "rawdesc": " Get current FPS",
                "start": [
                    240,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get frame metrics\n\n@*return* `frameMetrics` — Frame timing data",
                "extends": {
                    "args": [],
                    "desc": " Get frame metrics\n\n@*return* `frameMetrics` — Frame timing data",
                    "finish": [
                        255,
                        3
                    ],
                    "rawdesc": " Get frame metrics",
                    "returns": [
                        {
                            "desc": "Frame timing data",
                            "name": "frameMetrics",
                            "rawdesc": "Frame timing data",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        246,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.getFrameMetrics()\n  -> frameMetrics: table"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    246,
                    36
                ],
                "name": "getFrameMetrics",
                "rawdesc": " Get frame metrics",
                "start": [
                    246,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get memory metrics\n\n@*return* `memoryMetrics` — Memory usage data",
                "extends": {
                    "args": [],
                    "desc": " Get memory metrics\n\n@*return* `memoryMetrics` — Memory usage data",
                    "finish": [
                        268,
                        3
                    ],
                    "rawdesc": " Get memory metrics",
                    "returns": [
                        {
                            "desc": "Memory usage data",
                            "name": "memoryMetrics",
                            "rawdesc": "Memory usage data",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.getMemoryMetrics()\n  -> memoryMetrics: table"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    259,
                    37
                ],
                "name": "getMemoryMetrics",
                "rawdesc": " Get memory metrics",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get all performance metrics\n\n@*return* `metrics` — All collected metrics",
                "extends": {
                    "args": [],
                    "desc": " Get all performance metrics\n\n@*return* `metrics` — All collected metrics",
                    "finish": [
                        290,
                        3
                    ],
                    "rawdesc": " Get all performance metrics",
                    "returns": [
                        {
                            "desc": "All collected metrics",
                            "name": "metrics",
                            "rawdesc": "All collected metrics",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        272,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.getMetrics()\n  -> metrics: table"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    272,
                    31
                ],
                "name": "getMetrics",
                "rawdesc": " Get all performance metrics",
                "start": [
                    272,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get recent warnings\n\n@*param* `count` — Number of warnings to return (default: 10)\n\n@*return* `warnings` — Recent warnings",
                "extends": {
                    "args": [
                        {
                            "desc": "Number of warnings to return (default: 10)",
                            "finish": [
                                295,
                                38
                            ],
                            "name": "count",
                            "rawdesc": "Number of warnings to return (default: 10)",
                            "start": [
                                295,
                                33
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Get recent warnings\n\n@*param* `count` — Number of warnings to return (default: 10)\n\n@*return* `warnings` — Recent warnings",
                    "finish": [
                        303,
                        3
                    ],
                    "rawdesc": " Get recent warnings",
                    "returns": [
                        {
                            "desc": "Recent warnings",
                            "name": "warnings",
                            "rawdesc": "Recent warnings",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        295,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.getWarnings(count?: number)\n  -> warnings: table"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    295,
                    32
                ],
                "name": "getWarnings",
                "rawdesc": " Get recent warnings",
                "start": [
                    295,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Initialize performance monitoring\n\n@*param* `options` — Optional configuration overrides",
                "extends": {
                    "args": [
                        {
                            "desc": "Optional configuration overrides",
                            "finish": [
                                40,
                                33
                            ],
                            "name": "options",
                            "rawdesc": "Optional configuration overrides",
                            "start": [
                                40,
                                26
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": " Initialize performance monitoring\n\n@*param* `options` — Optional configuration overrides",
                    "finish": [
                        47,
                        3
                    ],
                    "rawdesc": " Initialize performance monitoring",
                    "start": [
                        40,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.init(options?: table)"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    40,
                    25
                ],
                "name": "init",
                "rawdesc": " Initialize performance monitoring",
                "start": [
                    40,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if performance monitoring is enabled",
                "extends": {
                    "args": [],
                    "desc": " Check if performance monitoring is enabled",
                    "finish": [
                        63,
                        3
                    ],
                    "rawdesc": " Check if performance monitoring is enabled",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.isEnabled()\n  -> boolean"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    61,
                    30
                ],
                "name": "isEnabled",
                "rawdesc": " Check if performance monitoring is enabled",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle keyboard input for HUD toggle\n\n@*param* `key` — Key pressed",
                "extends": {
                    "args": [
                        {
                            "desc": "Key pressed",
                            "finish": [
                                415,
                                35
                            ],
                            "name": "key",
                            "rawdesc": "Key pressed",
                            "start": [
                                415,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Handle keyboard input for HUD toggle\n\n@*param* `key` — Key pressed",
                    "finish": [
                        419,
                        3
                    ],
                    "rawdesc": " Handle keyboard input for HUD toggle",
                    "start": [
                        415,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.keypressed(key: string)"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    415,
                    31
                ],
                "name": "keypressed",
                "rawdesc": " Handle keyboard input for HUD toggle",
                "start": [
                    415,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Wrap a function with performance timing\n\n@*param* `name` — Metric name\n\n@*param* `fn` — Function to measure\n\n@*return* `Wrapped` — function",
                "extends": {
                    "args": [
                        {
                            "desc": "Metric name",
                            "finish": [
                                149,
                                33
                            ],
                            "name": "name",
                            "rawdesc": "Metric name",
                            "start": [
                                149,
                                29
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Function to measure",
                            "finish": [
                                149,
                                37
                            ],
                            "name": "fn",
                            "rawdesc": "Function to measure",
                            "start": [
                                149,
                                35
                            ],
                            "type": "local",
                            "view": "function"
                        }
                    ],
                    "desc": " Wrap a function with performance timing\n\n@*param* `name` — Metric name\n\n@*param* `fn` — Function to measure\n\n@*return* `Wrapped` — function",
                    "finish": [
                        160,
                        3
                    ],
                    "rawdesc": " Wrap a function with performance timing",
                    "returns": [
                        {
                            "desc": "function",
                            "name": "Wrapped",
                            "rawdesc": "function",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.measure(name: string, fn: function)\n  -> Wrapped: function"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    149,
                    28
                ],
                "name": "measure",
                "rawdesc": " Wrap a function with performance timing",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Render performance HUD\n\n@*param* `x` — X position (default: 10)\n\n@*param* `y` — Y position (default: 10)",
                "extends": {
                    "args": [
                        {
                            "desc": "X position (default: 10)",
                            "finish": [
                                343,
                                32
                            ],
                            "name": "x",
                            "rawdesc": "X position (default: 10)",
                            "start": [
                                343,
                                31
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y position (default: 10)",
                            "finish": [
                                343,
                                35
                            ],
                            "name": "y",
                            "rawdesc": "Y position (default: 10)",
                            "start": [
                                343,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Render performance HUD\n\n@*param* `x` — X position (default: 10)\n\n@*param* `y` — Y position (default: 10)",
                    "finish": [
                        411,
                        3
                    ],
                    "rawdesc": " Render performance HUD",
                    "start": [
                        343,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.renderHUD(x?: number, y?: number)"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    343,
                    30
                ],
                "name": "renderHUD",
                "rawdesc": " Render performance HUD",
                "start": [
                    343,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Reset all metrics",
                "extends": {
                    "args": [],
                    "desc": " Reset all metrics",
                    "finish": [
                        83,
                        3
                    ],
                    "rawdesc": " Reset all metrics",
                    "start": [
                        71,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.reset()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    71,
                    26
                ],
                "name": "reset",
                "rawdesc": " Reset all metrics",
                "start": [
                    71,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set configuration option\n\n@*param* `key` — Configuration key\n\n@*param* `value` — Configuration value",
                "extends": {
                    "args": [
                        {
                            "desc": "Configuration key",
                            "finish": [
                                430,
                                34
                            ],
                            "name": "key",
                            "rawdesc": "Configuration key",
                            "start": [
                                430,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Configuration value",
                            "finish": [
                                430,
                                41
                            ],
                            "name": "value",
                            "rawdesc": "Configuration value",
                            "start": [
                                430,
                                36
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": " Set configuration option\n\n@*param* `key` — Configuration key\n\n@*param* `value` — Configuration value",
                    "finish": [
                        432,
                        3
                    ],
                    "rawdesc": " Set configuration option",
                    "start": [
                        430,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.setConfig(key: string, value: any)"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    430,
                    30
                ],
                "name": "setConfig",
                "rawdesc": " Set configuration option",
                "start": [
                    430,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Start frame timing (call at beginning of frame)",
                "extends": {
                    "args": [],
                    "desc": " Start frame timing (call at beginning of frame)",
                    "finish": [
                        169,
                        3
                    ],
                    "rawdesc": " Start frame timing (call at beginning of frame)",
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.startFrame()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    163,
                    31
                ],
                "name": "startFrame",
                "rawdesc": " Start frame timing (call at beginning of frame)",
                "start": [
                    163,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Start a named timer\n\n@*param* `name` — Timer name",
                "extends": {
                    "args": [
                        {
                            "desc": "Timer name",
                            "finish": [
                                87,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "Timer name",
                            "start": [
                                87,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Start a named timer\n\n@*param* `name` — Timer name",
                    "finish": [
                        92,
                        3
                    ],
                    "rawdesc": " Start a named timer",
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.startTimer(name: string)"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    87,
                    31
                ],
                "name": "startTimer",
                "rawdesc": " Start a named timer",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Stop a named timer and record the elapsed time\n\n@*param* `name` — Timer name\n\n@*return* `elapsedMs` — Elapsed time in milliseconds, or nil if timer not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Timer name",
                            "finish": [
                                97,
                                35
                            ],
                            "name": "name",
                            "rawdesc": "Timer name",
                            "start": [
                                97,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Stop a named timer and record the elapsed time\n\n@*param* `name` — Timer name\n\n@*return* `elapsedMs` — Elapsed time in milliseconds, or nil if timer not found",
                    "finish": [
                        143,
                        3
                    ],
                    "rawdesc": " Stop a named timer and record the elapsed time",
                    "returns": [
                        {
                            "desc": "Elapsed time in milliseconds, or nil if timer not found",
                            "name": "elapsedMs",
                            "rawdesc": "Elapsed time in milliseconds, or nil if timer not found",
                            "type": "function.return",
                            "view": "number?"
                        }
                    ],
                    "start": [
                        97,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.stopTimer(name: string)\n  -> elapsedMs: number?"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    97,
                    30
                ],
                "name": "stopTimer",
                "rawdesc": " Stop a named timer and record the elapsed time",
                "start": [
                    97,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Toggle performance HUD",
                "extends": {
                    "args": [],
                    "desc": " Toggle performance HUD",
                    "finish": [
                        68,
                        3
                    ],
                    "rawdesc": " Toggle performance HUD",
                    "start": [
                        66,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.toggleHUD()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    66,
                    30
                ],
                "name": "toggleHUD",
                "rawdesc": " Toggle performance HUD",
                "start": [
                    66,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Update memory metrics",
                "extends": {
                    "args": [],
                    "desc": " Update memory metrics",
                    "finish": [
                        214,
                        3
                    ],
                    "rawdesc": " Update memory metrics",
                    "start": [
                        199,
                        0
                    ],
                    "type": "function",
                    "view": "function Performance.updateMemory()"
                },
                "file": "modules/Performance.lua",
                "finish": [
                    199,
                    33
                ],
                "name": "updateMemory",
                "rawdesc": " Update memory metrics",
                "start": [
                    199,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "Performance",
        "type": "type",
        "view": "Performance"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    3,
                    15
                ],
                "start": [
                    3,
                    10
                ],
                "type": "doc.class",
                "view": "Proto",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "Proto",
        "type": "type",
        "view": "Proto"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Renderer.lua",
                "finish": [
                    0,
                    18
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "Renderer",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        25,
                        21
                    ],
                    "start": [
                        25,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                25,
                                21
                            ],
                            "start": [
                                25,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    25,
                    21
                ],
                "name": "_Blur",
                "start": [
                    25,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        19,
                        22
                    ],
                    "start": [
                        19,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                19,
                                22
                            ],
                            "start": [
                                19,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    19,
                    22
                ],
                "name": "_Color",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        27,
                        27
                    ],
                    "start": [
                        27,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                27,
                                27
                            ],
                            "start": [
                                27,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    27,
                    27
                ],
                "name": "_FONT_CACHE",
                "start": [
                    27,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        23,
                        27
                    ],
                    "start": [
                        23,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                23,
                                27
                            ],
                            "start": [
                                23,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    23,
                    27
                ],
                "name": "_ImageCache",
                "start": [
                    23,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        30
                    ],
                    "start": [
                        22,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                30
                            ],
                            "start": [
                                22,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    22,
                    30
                ],
                "name": "_ImageRenderer",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        21,
                        26
                    ],
                    "start": [
                        21,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                26
                            ],
                            "start": [
                                21,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    21,
                    26
                ],
                "name": "_NinePatch",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        20,
                        28
                    ],
                    "start": [
                        20,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                20,
                                28
                            ],
                            "start": [
                                20,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    20,
                    28
                ],
                "name": "_RoundedRect",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        28,
                        26
                    ],
                    "start": [
                        28,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                28,
                                26
                            ],
                            "start": [
                                28,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    28,
                    26
                ],
                "name": "_TextAlign",
                "start": [
                    28,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        24,
                        22
                    ],
                    "start": [
                        24,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                24,
                                22
                            ],
                            "start": [
                                24,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    24,
                    22
                ],
                "name": "_Theme",
                "start": [
                    24,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        30,
                        27
                    ],
                    "start": [
                        30,
                        19
                    ],
                    "type": "getlocal",
                    "view": "Renderer"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    30,
                    16
                ],
                "name": "__index",
                "start": [
                    30,
                    0
                ],
                "type": "setfield",
                "view": "Renderer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        17,
                        30
                    ],
                    "start": [
                        17,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                29
                            ],
                            "start": [
                                17,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    17,
                    30
                ],
                "name": "_blurInstance",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw background layer\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `width` — Width\n\n@*param* `height` — Height\n\n@*param* `drawBackgroundColor` — Background color (may have animation applied)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                8
                            ],
                            "name": "self",
                            "start": [
                                149,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "X position",
                            "finish": [
                                149,
                                35
                            ],
                            "name": "x",
                            "rawdesc": "X position",
                            "start": [
                                149,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position",
                            "finish": [
                                149,
                                38
                            ],
                            "name": "y",
                            "rawdesc": "Y position",
                            "start": [
                                149,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Width",
                            "finish": [
                                149,
                                45
                            ],
                            "name": "width",
                            "rawdesc": "Width",
                            "start": [
                                149,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Height",
                            "finish": [
                                149,
                                53
                            ],
                            "name": "height",
                            "rawdesc": "Height",
                            "start": [
                                149,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Background color (may have animation applied)",
                            "finish": [
                                149,
                                74
                            ],
                            "name": "drawBackgroundColor",
                            "rawdesc": "Background color (may have animation applied)",
                            "start": [
                                149,
                                55
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Draw background layer\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `width` — Width\n\n@*param* `height` — Height\n\n@*param* `drawBackgroundColor` — Background color (may have animation applied)",
                    "finish": [
                        153,
                        3
                    ],
                    "rawdesc": " Draw background layer",
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:_drawBackground(x: number, y: number, width: number, height: number, drawBackgroundColor: table)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    149,
                    33
                ],
                "name": "_drawBackground",
                "rawdesc": " Draw background layer",
                "start": [
                    149,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw borders\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                274,
                                8
                            ],
                            "name": "self",
                            "start": [
                                274,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "X position",
                            "finish": [
                                274,
                                32
                            ],
                            "name": "x",
                            "rawdesc": "X position",
                            "start": [
                                274,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position",
                            "finish": [
                                274,
                                35
                            ],
                            "name": "y",
                            "rawdesc": "Y position",
                            "start": [
                                274,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box width",
                            "finish": [
                                274,
                                51
                            ],
                            "name": "borderBoxWidth",
                            "rawdesc": "Border box width",
                            "start": [
                                274,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box height",
                            "finish": [
                                274,
                                68
                            ],
                            "name": "borderBoxHeight",
                            "rawdesc": "Border box height",
                            "start": [
                                274,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Draw borders\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height",
                    "finish": [
                        299,
                        3
                    ],
                    "rawdesc": " Draw borders",
                    "start": [
                        274,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:_drawBorders(x: number, y: number, borderBoxWidth: number, borderBoxHeight: number)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    274,
                    30
                ],
                "name": "_drawBorders",
                "rawdesc": " Draw borders",
                "start": [
                    274,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw image layer\n\n@*param* `x` — X position (border box)\n\n@*param* `y` — Y position (border box)\n\n@*param* `paddingLeft` — Left padding\n\n@*param* `paddingTop` — Top padding\n\n@*param* `contentWidth` — Content width\n\n@*param* `contentHeight` — Content height\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                164,
                                8
                            ],
                            "name": "self",
                            "start": [
                                164,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "X position (border box)",
                            "finish": [
                                164,
                                30
                            ],
                            "name": "x",
                            "rawdesc": "X position (border box)",
                            "start": [
                                164,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position (border box)",
                            "finish": [
                                164,
                                33
                            ],
                            "name": "y",
                            "rawdesc": "Y position (border box)",
                            "start": [
                                164,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Left padding",
                            "finish": [
                                164,
                                46
                            ],
                            "name": "paddingLeft",
                            "rawdesc": "Left padding",
                            "start": [
                                164,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Top padding",
                            "finish": [
                                164,
                                58
                            ],
                            "name": "paddingTop",
                            "rawdesc": "Top padding",
                            "start": [
                                164,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Content width",
                            "finish": [
                                164,
                                72
                            ],
                            "name": "contentWidth",
                            "rawdesc": "Content width",
                            "start": [
                                164,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Content height",
                            "finish": [
                                164,
                                87
                            ],
                            "name": "contentHeight",
                            "rawdesc": "Content height",
                            "start": [
                                164,
                                74
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box width",
                            "finish": [
                                164,
                                103
                            ],
                            "name": "borderBoxWidth",
                            "rawdesc": "Border box width",
                            "start": [
                                164,
                                89
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box height",
                            "finish": [
                                164,
                                120
                            ],
                            "name": "borderBoxHeight",
                            "rawdesc": "Border box height",
                            "start": [
                                164,
                                105
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Draw image layer\n\n@*param* `x` — X position (border box)\n\n@*param* `y` — Y position (border box)\n\n@*param* `paddingLeft` — Left padding\n\n@*param* `paddingTop` — Top padding\n\n@*param* `contentWidth` — Content width\n\n@*param* `contentHeight` — Content height\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height",
                    "finish": [
                        199,
                        3
                    ],
                    "rawdesc": " Draw image layer",
                    "start": [
                        164,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:_drawImage(x: number, y: number, paddingLeft: number, paddingTop: number, contentWidth: number, contentHeight: number, borderBoxWidth: number, borderBoxHeight: number)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    164,
                    28
                ],
                "name": "_drawImage",
                "rawdesc": " Draw image layer",
                "start": [
                    164,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw theme layer (9-patch)\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height\n\n@*param* `scaleCorners` — Whether to scale corners (from element)\n\n@*param* `scalingAlgorithm` — Scaling algorithm (from element)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                208,
                                8
                            ],
                            "name": "self",
                            "start": [
                                208,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "X position",
                            "finish": [
                                208,
                                30
                            ],
                            "name": "x",
                            "rawdesc": "X position",
                            "start": [
                                208,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position",
                            "finish": [
                                208,
                                33
                            ],
                            "name": "y",
                            "rawdesc": "Y position",
                            "start": [
                                208,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box width",
                            "finish": [
                                208,
                                49
                            ],
                            "name": "borderBoxWidth",
                            "rawdesc": "Border box width",
                            "start": [
                                208,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box height",
                            "finish": [
                                208,
                                66
                            ],
                            "name": "borderBoxHeight",
                            "rawdesc": "Border box height",
                            "start": [
                                208,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Whether to scale corners (from element)",
                            "finish": [
                                208,
                                80
                            ],
                            "name": "scaleCorners",
                            "rawdesc": "Whether to scale corners (from element)",
                            "start": [
                                208,
                                68
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Scaling algorithm (from element)",
                            "finish": [
                                208,
                                98
                            ],
                            "name": "scalingAlgorithm",
                            "rawdesc": "Scaling algorithm (from element)",
                            "start": [
                                208,
                                82
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Draw theme layer (9-patch)\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height\n\n@*param* `scaleCorners` — Whether to scale corners (from element)\n\n@*param* `scalingAlgorithm` — Scaling algorithm (from element)",
                    "finish": [
                        267,
                        3
                    ],
                    "rawdesc": " Draw theme layer (9-patch)",
                    "start": [
                        208,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:_drawTheme(x: number, y: number, borderBoxWidth: number, borderBoxHeight: number, scaleCorners: boolean, scalingAlgorithm: string)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    208,
                    28
                ],
                "name": "_drawTheme",
                "rawdesc": " Draw theme layer (9-patch)",
                "start": [
                    208,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        27
                    ],
                    "start": [
                        18,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                26
                            ],
                            "start": [
                                18,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    18,
                    27
                ],
                "name": "_element",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        11,
                        34
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        11,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                11,
                                33
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                11,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(love.Image)?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    11,
                    34
                ],
                "name": "_loadedImage",
                "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        8,
                        28
                    ],
                    "start": [
                        8,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                28
                            ],
                            "start": [
                                8,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    8,
                    28
                ],
                "name": "_themeState",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        26,
                        22
                    ],
                    "start": [
                        26,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                26,
                                22
                            ],
                            "start": [
                                26,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    26,
                    22
                ],
                "name": "_utils",
                "start": [
                    26,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        58
                    ],
                    "start": [
                        16,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        16,
                                        40
                                    ],
                                    "name": {
                                        "[1]": "intensity",
                                        "finish": [
                                            16,
                                            33
                                        ],
                                        "start": [
                                            16,
                                            24
                                        ],
                                        "type": "doc.field.name",
                                        "view": "intensity"
                                    },
                                    "start": [
                                        16,
                                        24
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        16,
                                        56
                                    ],
                                    "name": {
                                        "[1]": "quality",
                                        "finish": [
                                            16,
                                            49
                                        ],
                                        "start": [
                                            16,
                                            42
                                        ],
                                        "type": "doc.field.name",
                                        "view": "quality"
                                    },
                                    "start": [
                                        16,
                                        42
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                16,
                                57
                            ],
                            "start": [
                                16,
                                23
                            ],
                            "type": "doc.type.table",
                            "view": "{ intensity: number, quality: number }"
                        }
                    ],
                    "view": "{ intensity: number, quality: number }?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    16,
                    58
                ],
                "name": "backdropBlur",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "{ intensity: number, quality: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        1,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        1,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                1,
                                31
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                1,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    1,
                    31
                ],
                "name": "backgroundColor",
                "rawdesc": " Utility class for color handling",
                "start": [
                    1,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        4,
                        75
                    ],
                    "start": [
                        4,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        4,
                                        29
                                    ],
                                    "name": {
                                        "[1]": "top",
                                        "finish": [
                                            4,
                                            21
                                        ],
                                        "start": [
                                            4,
                                            18
                                        ],
                                        "type": "doc.field.name",
                                        "view": "top"
                                    },
                                    "start": [
                                        4,
                                        18
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        4,
                                        44
                                    ],
                                    "name": {
                                        "[1]": "right",
                                        "finish": [
                                            4,
                                            36
                                        ],
                                        "start": [
                                            4,
                                            31
                                        ],
                                        "type": "doc.field.name",
                                        "view": "right"
                                    },
                                    "start": [
                                        4,
                                        31
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        4,
                                        60
                                    ],
                                    "name": {
                                        "[1]": "bottom",
                                        "finish": [
                                            4,
                                            52
                                        ],
                                        "start": [
                                            4,
                                            46
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottom"
                                    },
                                    "start": [
                                        4,
                                        46
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                },
                                {
                                    "finish": [
                                        4,
                                        74
                                    ],
                                    "name": {
                                        "[1]": "left",
                                        "finish": [
                                            4,
                                            66
                                        ],
                                        "start": [
                                            4,
                                            62
                                        ],
                                        "type": "doc.field.name",
                                        "view": "left"
                                    },
                                    "start": [
                                        4,
                                        62
                                    ],
                                    "type": "doc.type.field",
                                    "view": "boolean"
                                }
                            ],
                            "finish": [
                                4,
                                75
                            ],
                            "start": [
                                4,
                                17
                            ],
                            "type": "doc.type.table",
                            "view": "{ top: boolean, right: boolean, bottom: boolean, left: boolean }"
                        }
                    ],
                    "view": "{ top: boolean, right: boolean, bottom: boolean, left: boolean }"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    4,
                    75
                ],
                "name": "border",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "{ top: boolean, right: boolean, bottom: boolean, left: boolean }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        2,
                        27
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        2,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                2,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                2,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    2,
                    27
                ],
                "name": "borderColor",
                "rawdesc": " Utility class for color handling",
                "start": [
                    2,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        57
                    ],
                    "start": [
                        15,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        15,
                                        39
                                    ],
                                    "name": {
                                        "[1]": "intensity",
                                        "finish": [
                                            15,
                                            32
                                        ],
                                        "start": [
                                            15,
                                            23
                                        ],
                                        "type": "doc.field.name",
                                        "view": "intensity"
                                    },
                                    "start": [
                                        15,
                                        23
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        15,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "quality",
                                        "finish": [
                                            15,
                                            48
                                        ],
                                        "start": [
                                            15,
                                            41
                                        ],
                                        "type": "doc.field.name",
                                        "view": "quality"
                                    },
                                    "start": [
                                        15,
                                        41
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                15,
                                56
                            ],
                            "start": [
                                15,
                                22
                            ],
                            "type": "doc.type.table",
                            "view": "{ intensity: number, quality: number }"
                        }
                    ],
                    "view": "{ intensity: number, quality: number }?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    15,
                    57
                ],
                "name": "contentBlur",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "{ intensity: number, quality: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        5,
                        95
                    ],
                    "start": [
                        5,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        5,
                                        38
                                    ],
                                    "name": {
                                        "[1]": "topLeft",
                                        "finish": [
                                            5,
                                            31
                                        ],
                                        "start": [
                                            5,
                                            24
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topLeft"
                                    },
                                    "start": [
                                        5,
                                        24
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        5,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "topRight",
                                        "finish": [
                                            5,
                                            48
                                        ],
                                        "start": [
                                            5,
                                            40
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topRight"
                                    },
                                    "start": [
                                        5,
                                        40
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        5,
                                        74
                                    ],
                                    "name": {
                                        "[1]": "bottomLeft",
                                        "finish": [
                                            5,
                                            67
                                        ],
                                        "start": [
                                            5,
                                            57
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomLeft"
                                    },
                                    "start": [
                                        5,
                                        57
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        5,
                                        94
                                    ],
                                    "name": {
                                        "[1]": "bottomRight",
                                        "finish": [
                                            5,
                                            87
                                        ],
                                        "start": [
                                            5,
                                            76
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomRight"
                                    },
                                    "start": [
                                        5,
                                        76
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                5,
                                95
                            ],
                            "start": [
                                5,
                                23
                            ],
                            "type": "doc.type.table",
                            "view": "{ topLeft: number, topRight: number, bottomLeft: number, bottomRight: number }"
                        }
                    ],
                    "view": "{ topLeft: number, topRight: number, bottomLeft: number, bottomRight: number }"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    5,
                    95
                ],
                "name": "cornerRadius",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "{ topLeft: number, topRight: number, bottomLeft: number, bottomRight: number }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Cleanup renderer resources",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                854,
                                8
                            ],
                            "name": "self",
                            "start": [
                                854,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        }
                    ],
                    "desc": " Cleanup renderer resources",
                    "finish": [
                        858,
                        3
                    ],
                    "rawdesc": " Cleanup renderer resources",
                    "start": [
                        854,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:destroy()"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    854,
                    25
                ],
                "name": "destroy",
                "rawdesc": " Cleanup renderer resources",
                "start": [
                    854,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Main draw method - renders all visual layers\n\n@*param* `backdropCanvas` — Backdrop canvas for backdrop blur",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                303,
                                8
                            ],
                            "name": "self",
                            "start": [
                                303,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "Backdrop canvas for backdrop blur",
                            "finish": [
                                303,
                                37
                            ],
                            "name": "backdropCanvas",
                            "rawdesc": "Backdrop canvas for backdrop blur",
                            "start": [
                                303,
                                23
                            ],
                            "type": "local",
                            "view": "table|nil"
                        }
                    ],
                    "desc": " Main draw method - renders all visual layers\n\n@*param* `backdropCanvas` — Backdrop canvas for backdrop blur",
                    "finish": [
                        348,
                        3
                    ],
                    "rawdesc": " Main draw method - renders all visual layers",
                    "start": [
                        303,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:draw(backdropCanvas: table|nil)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    303,
                    22
                ],
                "name": "draw",
                "rawdesc": " Main draw method - renders all visual layers",
                "start": [
                    303,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw visual feedback when element is pressed\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                848,
                                8
                            ],
                            "name": "self",
                            "start": [
                                848,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "X position",
                            "finish": [
                                848,
                                36
                            ],
                            "name": "x",
                            "rawdesc": "X position",
                            "start": [
                                848,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position",
                            "finish": [
                                848,
                                39
                            ],
                            "name": "y",
                            "rawdesc": "Y position",
                            "start": [
                                848,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box width",
                            "finish": [
                                848,
                                55
                            ],
                            "name": "borderBoxWidth",
                            "rawdesc": "Border box width",
                            "start": [
                                848,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Border box height",
                            "finish": [
                                848,
                                72
                            ],
                            "name": "borderBoxHeight",
                            "rawdesc": "Border box height",
                            "start": [
                                848,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Draw visual feedback when element is pressed\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `borderBoxWidth` — Border box width\n\n@*param* `borderBoxHeight` — Border box height",
                    "finish": [
                        851,
                        3
                    ],
                    "rawdesc": " Draw visual feedback when element is pressed",
                    "start": [
                        848,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:drawPressedState(x: number, y: number, borderBoxWidth: number, borderBoxHeight: number)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    848,
                    34
                ],
                "name": "drawPressedState",
                "rawdesc": " Draw visual feedback when element is pressed",
                "start": [
                    848,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw scrollbars (both vertical and horizontal)\n\n@*param* `element` — Reference to the parent Element instance\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `w` — Width\n\n@*param* `h` — Height\n\n@*param* `dims` — Scrollbar dimensions from _calculateScrollbarDimensions",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                780,
                                8
                            ],
                            "name": "self",
                            "start": [
                                780,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "Reference to the parent Element instance",
                            "finish": [
                                780,
                                40
                            ],
                            "name": "element",
                            "rawdesc": "Reference to the parent Element instance",
                            "start": [
                                780,
                                33
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "X position",
                            "finish": [
                                780,
                                43
                            ],
                            "name": "x",
                            "rawdesc": "X position",
                            "start": [
                                780,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Y position",
                            "finish": [
                                780,
                                46
                            ],
                            "name": "y",
                            "rawdesc": "Y position",
                            "start": [
                                780,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Width",
                            "finish": [
                                780,
                                49
                            ],
                            "name": "w",
                            "rawdesc": "Width",
                            "start": [
                                780,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Height",
                            "finish": [
                                780,
                                52
                            ],
                            "name": "h",
                            "rawdesc": "Height",
                            "start": [
                                780,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Scrollbar dimensions from _calculateScrollbarDimensions",
                            "finish": [
                                780,
                                58
                            ],
                            "name": "dims",
                            "rawdesc": "Scrollbar dimensions from _calculateScrollbarDimensions",
                            "start": [
                                780,
                                54
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Draw scrollbars (both vertical and horizontal)\n\n@*param* `element` — Reference to the parent Element instance\n\n@*param* `x` — X position\n\n@*param* `y` — Y position\n\n@*param* `w` — Width\n\n@*param* `h` — Height\n\n@*param* `dims` — Scrollbar dimensions from _calculateScrollbarDimensions",
                    "finish": [
                        841,
                        3
                    ],
                    "rawdesc": " Draw scrollbars (both vertical and horizontal)",
                    "start": [
                        780,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:drawScrollbars(element: table, x: number, y: number, w: number, h: number, dims: table)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    780,
                    32
                ],
                "name": "drawScrollbars",
                "rawdesc": " Draw scrollbars (both vertical and horizontal)",
                "start": [
                    780,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Draw text content (includes text, cursor, selection, placeholder, password masking)\n\n@*param* `element` — Reference to the parent Element instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                553,
                                8
                            ],
                            "name": "self",
                            "start": [
                                553,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "Reference to the parent Element instance",
                            "finish": [
                                553,
                                34
                            ],
                            "name": "element",
                            "rawdesc": "Reference to the parent Element instance",
                            "start": [
                                553,
                                27
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Draw text content (includes text, cursor, selection, placeholder, password masking)\n\n@*param* `element` — Reference to the parent Element instance",
                    "finish": [
                        771,
                        3
                    ],
                    "rawdesc": " Draw text content (includes text, cursor, selection, placeholder, password masking)",
                    "start": [
                        553,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:drawText(element: table)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    553,
                    26
                ],
                "name": "drawText",
                "rawdesc": " Draw text content (includes text, cursor, selection, placeholder, password masking)",
                "start": [
                    553,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get or create blur instance for this element\n\n@*return* `Blur` — instance or nil",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                120,
                                8
                            ],
                            "name": "self",
                            "start": [
                                120,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        }
                    ],
                    "desc": " Get or create blur instance for this element\n\n@*return* `Blur` — instance or nil",
                    "finish": [
                        135,
                        3
                    ],
                    "rawdesc": " Get or create blur instance for this element",
                    "returns": [
                        {
                            "desc": "instance or nil",
                            "name": "Blur",
                            "rawdesc": "instance or nil",
                            "type": "function.return",
                            "view": "table|nil"
                        }
                    ],
                    "start": [
                        120,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:getBlurInstance()\n  -> Blur: table|nil"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    120,
                    33
                ],
                "name": "getBlurInstance",
                "rawdesc": " Get or create blur instance for this element",
                "start": [
                    120,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get font for element (resolves from theme or fontFamily)\n\n@*param* `element` — Reference to the parent Element instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                353,
                                8
                            ],
                            "name": "self",
                            "start": [
                                353,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "Reference to the parent Element instance",
                            "finish": [
                                353,
                                33
                            ],
                            "name": "element",
                            "rawdesc": "Reference to the parent Element instance",
                            "start": [
                                353,
                                26
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Get font for element (resolves from theme or fontFamily)\n\n@*param* `element` — Reference to the parent Element instance",
                    "finish": [
                        355,
                        3
                    ],
                    "rawdesc": " Get font for element (resolves from theme or fontFamily)",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        353,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:getFont(element: table)\n  -> love.Font"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    353,
                    25
                ],
                "name": "getFont",
                "rawdesc": " Get font for element (resolves from theme or fontFamily)",
                "start": [
                    353,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        10,
                        27
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        10,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                10,
                                26
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                10,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(love.Image)?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    10,
                    27
                ],
                "name": "image",
                "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        14,
                        29
                    ],
                    "start": [
                        14,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                29
                            ],
                            "start": [
                                14,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    14,
                    29
                ],
                "name": "imageOpacity",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        9,
                        27
                    ],
                    "start": [
                        9,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                26
                            ],
                            "start": [
                                9,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    9,
                    27
                ],
                "name": "imagePath",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Initialize renderer with parent element reference\n\n@*param* `element` — The parent Element instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                114,
                                8
                            ],
                            "name": "self",
                            "start": [
                                114,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "The parent Element instance",
                            "finish": [
                                114,
                                36
                            ],
                            "name": "element",
                            "rawdesc": "The parent Element instance",
                            "start": [
                                114,
                                29
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Initialize renderer with parent element reference\n\n@*param* `element` — The parent Element instance",
                    "finish": [
                        116,
                        3
                    ],
                    "rawdesc": " Initialize renderer with parent element reference",
                    "start": [
                        114,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:initialize(element: table)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    114,
                    28
                ],
                "name": "initialize",
                "rawdesc": " Initialize renderer with parent element reference",
                "start": [
                    114,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a new Renderer instance\n\n@*param* `config` — Configuration table with rendering properties\n\n@*param* `deps` — Dependencies {Color, RoundedRect, NinePatch, ImageRenderer, ImageCache, Theme, Blur, utils}",
                "extends": {
                    "args": [
                        {
                            "desc": "Configuration table with rendering properties",
                            "finish": [
                                35,
                                28
                            ],
                            "name": "config",
                            "rawdesc": "Configuration table with rendering properties",
                            "start": [
                                35,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Dependencies {Color, RoundedRect, NinePatch, ImageRenderer, ImageCache, Theme, Blur, utils}",
                            "finish": [
                                35,
                                34
                            ],
                            "name": "deps",
                            "rawdesc": "Dependencies {Color, RoundedRect, NinePatch, ImageRenderer, ImageCache, Theme, Blur, utils}",
                            "start": [
                                35,
                                30
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Create a new Renderer instance\n\n@*param* `config` — Configuration table with rendering properties\n\n@*param* `deps` — Dependencies {Color, RoundedRect, NinePatch, ImageRenderer, ImageCache, Theme, Blur, utils}",
                    "finish": [
                        110,
                        3
                    ],
                    "rawdesc": " Create a new Renderer instance",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Renderer"
                        }
                    ],
                    "start": [
                        35,
                        0
                    ],
                    "type": "function",
                    "view": "function Renderer.new(config: table, deps: table)\n  -> Renderer"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    35,
                    21
                ],
                "name": "new",
                "rawdesc": " Create a new Renderer instance",
                "start": [
                    35,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        12,
                        26
                    ],
                    "start": [
                        12,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                26
                            ],
                            "start": [
                                12,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    12,
                    26
                ],
                "name": "objectFit",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        13,
                        31
                    ],
                    "start": [
                        13,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                31
                            ],
                            "start": [
                                13,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    13,
                    31
                ],
                "name": "objectPosition",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        3,
                        24
                    ],
                    "start": [
                        3,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                24
                            ],
                            "start": [
                                3,
                                18
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    3,
                    24
                ],
                "name": "opacity",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set theme state (normal, hover, pressed, disabled, active)\n\n@*param* `state` — The theme state",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                139,
                                8
                            ],
                            "name": "self",
                            "start": [
                                139,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "The theme state",
                            "finish": [
                                139,
                                37
                            ],
                            "name": "state",
                            "rawdesc": "The theme state",
                            "start": [
                                139,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Set theme state (normal, hover, pressed, disabled, active)\n\n@*param* `state` — The theme state",
                    "finish": [
                        141,
                        3
                    ],
                    "rawdesc": " Set theme state (normal, hover, pressed, disabled, active)",
                    "start": [
                        139,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:setThemeState(state: string)"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    139,
                    31
                ],
                "name": "setThemeState",
                "rawdesc": " Set theme state (normal, hover, pressed, disabled, active)",
                "start": [
                    139,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        6,
                        23
                    ],
                    "start": [
                        6,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                22
                            ],
                            "start": [
                                6,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    6,
                    23
                ],
                "name": "theme",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        7,
                        32
                    ],
                    "start": [
                        7,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                31
                            ],
                            "start": [
                                7,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    7,
                    32
                ],
                "name": "themeComponent",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Wrap a line of text based on element's textWrap mode\n\n@*param* `element` — Reference to the parent Element instance\n\n@*param* `line` — The line of text to wrap\n\n@*param* `maxWidth` — Maximum width for wrapping\n\n@*return* `Array` — of {text, startIdx, endIdx}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                362,
                                8
                            ],
                            "name": "self",
                            "start": [
                                362,
                                8
                            ],
                            "type": "self",
                            "view": "Renderer"
                        },
                        {
                            "desc": "Reference to the parent Element instance",
                            "finish": [
                                362,
                                34
                            ],
                            "name": "element",
                            "rawdesc": "Reference to the parent Element instance",
                            "start": [
                                362,
                                27
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "The line of text to wrap",
                            "finish": [
                                362,
                                40
                            ],
                            "name": "line",
                            "rawdesc": "The line of text to wrap",
                            "start": [
                                362,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Maximum width for wrapping",
                            "finish": [
                                362,
                                50
                            ],
                            "name": "maxWidth",
                            "rawdesc": "Maximum width for wrapping",
                            "start": [
                                362,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Wrap a line of text based on element's textWrap mode\n\n@*param* `element` — Reference to the parent Element instance\n\n@*param* `line` — The line of text to wrap\n\n@*param* `maxWidth` — Maximum width for wrapping\n\n@*return* `Array` — of {text, startIdx, endIdx}",
                    "finish": [
                        549,
                        3
                    ],
                    "rawdesc": " Wrap a line of text based on element's textWrap mode",
                    "returns": [
                        {
                            "desc": "of {text, startIdx, endIdx}",
                            "name": "Array",
                            "rawdesc": "of {text, startIdx, endIdx}",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        362,
                        0
                    ],
                    "type": "function",
                    "view": "(method) Renderer:wrapLine(element: table, line: string, maxWidth: number)\n  -> Array: table"
                },
                "file": "modules/Renderer.lua",
                "finish": [
                    362,
                    26
                ],
                "name": "wrapLine",
                "rawdesc": " Wrap a line of text based on element's textWrap mode",
                "start": [
                    362,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "Renderer",
        "type": "type",
        "view": "Renderer"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/ScrollManager.lua",
                "finish": [
                    0,
                    23
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "ScrollManager",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        26,
                        22
                    ],
                    "start": [
                        26,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                26,
                                22
                            ],
                            "start": [
                                26,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    26,
                    22
                ],
                "name": "_Color",
                "start": [
                    26,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        29,
                        37
                    ],
                    "start": [
                        29,
                        24
                    ],
                    "type": "getlocal",
                    "view": "ScrollManager"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    29,
                    21
                ],
                "name": "__index",
                "start": [
                    29,
                    0
                ],
                "type": "setfield",
                "view": "ScrollManager",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Total content height (including overflow)",
                "extends": {
                    "finish": [
                        15,
                        31
                    ],
                    "start": [
                        15,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                31
                            ],
                            "start": [
                                15,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    15,
                    31
                ],
                "name": "_contentHeight",
                "rawdesc": "Total content height (including overflow)",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Total content width (including overflow)",
                "extends": {
                    "finish": [
                        14,
                        30
                    ],
                    "start": [
                        14,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                30
                            ],
                            "start": [
                                14,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    14,
                    30
                ],
                "name": "_contentWidth",
                "rawdesc": "Total content width (including overflow)",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Reference to parent Element (set via initialize)",
                "extends": {
                    "finish": [
                        11,
                        27
                    ],
                    "start": [
                        11,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                26
                            ],
                            "start": [
                                11,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    11,
                    27
                ],
                "name": "_element",
                "rawdesc": "Reference to parent Element (set via initialize)",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\"vertical\" or \"horizontal\" when dragging",
                "extends": {
                    "finish": [
                        23,
                        35
                    ],
                    "start": [
                        23,
                        28
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                23,
                                34
                            ],
                            "start": [
                                23,
                                28
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    23,
                    35
                ],
                "name": "_hoveredScrollbar",
                "rawdesc": "\"vertical\" or \"horizontal\" when dragging",
                "start": [
                    23,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum horizontal scroll (contentWidth - containerWidth)",
                "extends": {
                    "finish": [
                        18,
                        28
                    ],
                    "start": [
                        18,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                28
                            ],
                            "start": [
                                18,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    18,
                    28
                ],
                "name": "_maxScrollX",
                "rawdesc": "Maximum horizontal scroll (contentWidth - containerWidth)",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum vertical scroll (contentHeight - containerHeight)",
                "extends": {
                    "finish": [
                        19,
                        28
                    ],
                    "start": [
                        19,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                19,
                                28
                            ],
                            "start": [
                                19,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    19,
                    28
                ],
                "name": "_maxScrollY",
                "rawdesc": "Maximum vertical scroll (contentHeight - containerHeight)",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "True if content overflows horizontally",
                "extends": {
                    "finish": [
                        12,
                        28
                    ],
                    "start": [
                        12,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                28
                            ],
                            "start": [
                                12,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    12,
                    28
                ],
                "name": "_overflowX",
                "rawdesc": "True if content overflows horizontally",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "True if content overflows vertically",
                "extends": {
                    "finish": [
                        13,
                        28
                    ],
                    "start": [
                        13,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                28
                            ],
                            "start": [
                                13,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    13,
                    28
                ],
                "name": "_overflowY",
                "rawdesc": "True if content overflows vertically",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll to track click position (internal helper)\n\n@*param* `component` — vertical",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                497,
                                8
                            ],
                            "name": "self",
                            "start": [
                                497,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "finish": [
                                497,
                                52
                            ],
                            "name": "mouseX",
                            "start": [
                                497,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                497,
                                60
                            ],
                            "name": "mouseY",
                            "start": [
                                497,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "vertical",
                            "finish": [
                                497,
                                71
                            ],
                            "name": "component",
                            "rawdesc": "vertical",
                            "start": [
                                497,
                                62
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Scroll to track click position (internal helper)\n\n@*param* `component` — vertical",
                    "finish": [
                        536,
                        3
                    ],
                    "rawdesc": " Scroll to track click position (internal helper)",
                    "start": [
                        497,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:_scrollToTrackPosition(mouseX: number, mouseY: number, component: string)"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    497,
                    45
                ],
                "name": "_scrollToTrackPosition",
                "rawdesc": " Scroll to track click position (internal helper)",
                "start": [
                    497,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Current horizontal scroll position",
                "extends": {
                    "finish": [
                        16,
                        25
                    ],
                    "start": [
                        16,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                16,
                                25
                            ],
                            "start": [
                                16,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    16,
                    25
                ],
                "name": "_scrollX",
                "rawdesc": "Current horizontal scroll position",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Current vertical scroll position",
                "extends": {
                    "finish": [
                        17,
                        25
                    ],
                    "start": [
                        17,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                25
                            ],
                            "start": [
                                17,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    17,
                    25
                ],
                "name": "_scrollY",
                "rawdesc": "Current vertical scroll position",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Offset from thumb top when drag started",
                "extends": {
                    "finish": [
                        24,
                        37
                    ],
                    "start": [
                        24,
                        31
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                24,
                                37
                            ],
                            "start": [
                                24,
                                31
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    24,
                    37
                ],
                "name": "_scrollbarDragOffset",
                "rawdesc": "Offset from thumb top when drag started",
                "start": [
                    24,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "True if currently dragging a scrollbar",
                "extends": {
                    "finish": [
                        22,
                        36
                    ],
                    "start": [
                        22,
                        29
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                36
                            ],
                            "start": [
                                22,
                                29
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    22,
                    36
                ],
                "name": "_scrollbarDragging",
                "rawdesc": "True if currently dragging a scrollbar",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "True if mouse is over horizontal scrollbar",
                "extends": {
                    "finish": [
                        21,
                        45
                    ],
                    "start": [
                        21,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                45
                            ],
                            "start": [
                                21,
                                38
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    21,
                    45
                ],
                "name": "_scrollbarHoveredHorizontal",
                "rawdesc": "True if mouse is over horizontal scrollbar",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "True if mouse is over vertical scrollbar",
                "extends": {
                    "finish": [
                        20,
                        43
                    ],
                    "start": [
                        20,
                        36
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                20,
                                43
                            ],
                            "start": [
                                20,
                                36
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    20,
                    43
                ],
                "name": "_scrollbarHoveredVertical",
                "rawdesc": "True if mouse is over vertical scrollbar",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Track if scrollbar press was handled this frame",
                "extends": {
                    "finish": [
                        25,
                        40
                    ],
                    "start": [
                        25,
                        33
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                25,
                                40
                            ],
                            "start": [
                                25,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    25,
                    40
                ],
                "name": "_scrollbarPressHandled",
                "rawdesc": "Track if scrollbar press was handled this frame",
                "start": [
                    25,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        27,
                        22
                    ],
                    "start": [
                        27,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                27,
                                22
                            ],
                            "start": [
                                27,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    27,
                    22
                ],
                "name": "_utils",
                "start": [
                    27,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Calculate scrollbar dimensions and positions\n\n@*return* — {vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                219,
                                8
                            ],
                            "name": "self",
                            "start": [
                                219,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Calculate scrollbar dimensions and positions\n\n@*return* — {vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                    "finish": [
                        306,
                        3
                    ],
                    "rawdesc": " Calculate scrollbar dimensions and positions",
                    "returns": [
                        {
                            "desc": "{vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                            "rawdesc": "{vertical: {visible, trackHeight, thumbHeight, thumbY}, horizontal: {visible, trackWidth, thumbWidth, thumbX}}",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        219,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:calculateScrollbarDimensions()\n  -> table"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    219,
                    51
                ],
                "name": "calculateScrollbarDimensions",
                "rawdesc": " Calculate scrollbar dimensions and positions",
                "start": [
                    219,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Detect if content overflows container bounds",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                92,
                                8
                            ],
                            "name": "self",
                            "start": [
                                92,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Detect if content overflows container bounds",
                    "finish": [
                        159,
                        3
                    ],
                    "rawdesc": " Detect if content overflows container bounds",
                    "start": [
                        92,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:detectOverflow()"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    92,
                    37
                ],
                "name": "detectOverflow",
                "rawdesc": " Detect if content overflows container bounds",
                "start": [
                    92,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get content dimensions (including overflow)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                213,
                                8
                            ],
                            "name": "self",
                            "start": [
                                213,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Get content dimensions (including overflow)",
                    "finish": [
                        215,
                        3
                    ],
                    "rawdesc": " Get content dimensions (including overflow)",
                    "returns": [
                        {
                            "name": "contentWidth",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "contentHeight",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        213,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:getContentSize()\n  -> contentWidth: number\n  2. contentHeight: number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    213,
                    37
                ],
                "name": "getContentSize",
                "rawdesc": " Get content dimensions (including overflow)",
                "start": [
                    213,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get maximum scroll bounds",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                193,
                                8
                            ],
                            "name": "self",
                            "start": [
                                193,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Get maximum scroll bounds",
                    "finish": [
                        195,
                        3
                    ],
                    "rawdesc": " Get maximum scroll bounds",
                    "returns": [
                        {
                            "name": "maxScrollX",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "maxScrollY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        193,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:getMaxScroll()\n  -> maxScrollX: number\n  2. maxScrollY: number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    193,
                    35
                ],
                "name": "getMaxScroll",
                "rawdesc": " Get maximum scroll bounds",
                "start": [
                    193,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get current scroll position",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                175,
                                8
                            ],
                            "name": "self",
                            "start": [
                                175,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Get current scroll position",
                    "finish": [
                        177,
                        3
                    ],
                    "rawdesc": " Get current scroll position",
                    "returns": [
                        {
                            "name": "scrollX",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "scrollY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        175,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:getScroll()\n  -> scrollX: number\n  2. scrollY: number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    175,
                    32
                ],
                "name": "getScroll",
                "rawdesc": " Get current scroll position",
                "start": [
                    175,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get scroll percentage (0-1)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                199,
                                8
                            ],
                            "name": "self",
                            "start": [
                                199,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Get scroll percentage (0-1)",
                    "finish": [
                        203,
                        3
                    ],
                    "rawdesc": " Get scroll percentage (0-1)",
                    "returns": [
                        {
                            "name": "percentX",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "percentY",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        199,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:getScrollPercentage()\n  -> percentX: number\n  2. percentY: number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    199,
                    42
                ],
                "name": "getScrollPercentage",
                "rawdesc": " Get scroll percentage (0-1)",
                "start": [
                    199,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get scrollbar at mouse position\n\n@*return* — {component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                312,
                                8
                            ],
                            "name": "self",
                            "start": [
                                312,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "finish": [
                                312,
                                52
                            ],
                            "name": "mouseX",
                            "start": [
                                312,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                312,
                                60
                            ],
                            "name": "mouseY",
                            "start": [
                                312,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Get scrollbar at mouse position\n\n@*return* — {component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                    "finish": [
                        374,
                        3
                    ],
                    "rawdesc": " Get scrollbar at mouse position",
                    "returns": [
                        {
                            "desc": "{component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                            "rawdesc": "{component: \"vertical\"|\"horizontal\", region: \"thumb\"|\"track\"}",
                            "type": "function.return",
                            "view": "table|nil"
                        }
                    ],
                    "start": [
                        312,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:getScrollbarAtPosition(mouseX: number, mouseY: number)\n  -> table|nil"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    312,
                    45
                ],
                "name": "getScrollbarAtPosition",
                "rawdesc": " Get scrollbar at mouse position",
                "start": [
                    312,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get state for immediate mode persistence\n\n@*return* `State` — data",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                612,
                                8
                            ],
                            "name": "self",
                            "start": [
                                612,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Get state for immediate mode persistence\n\n@*return* `State` — data",
                    "finish": [
                        620,
                        3
                    ],
                    "rawdesc": " Get state for immediate mode persistence",
                    "returns": [
                        {
                            "desc": "data",
                            "name": "State",
                            "rawdesc": "data",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        612,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:getState()\n  -> State: table"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    612,
                    31
                ],
                "name": "getState",
                "rawdesc": " Get state for immediate mode persistence",
                "start": [
                    612,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle scrollbar drag\n\n@*return* — True if event was consumed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                428,
                                8
                            ],
                            "name": "self",
                            "start": [
                                428,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "finish": [
                                428,
                                45
                            ],
                            "name": "mouseX",
                            "start": [
                                428,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                428,
                                53
                            ],
                            "name": "mouseY",
                            "start": [
                                428,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle scrollbar drag\n\n@*return* — True if event was consumed",
                    "finish": [
                        475,
                        3
                    ],
                    "rawdesc": " Handle scrollbar drag",
                    "returns": [
                        {
                            "desc": "True if event was consumed",
                            "rawdesc": "True if event was consumed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        428,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:handleMouseMove(mouseX: number, mouseY: number)\n  -> boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    428,
                    38
                ],
                "name": "handleMouseMove",
                "rawdesc": " Handle scrollbar drag",
                "start": [
                    428,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle scrollbar mouse press\n\n@*return* — True if event was consumed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                381,
                                8
                            ],
                            "name": "self",
                            "start": [
                                381,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "finish": [
                                381,
                                46
                            ],
                            "name": "mouseX",
                            "start": [
                                381,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                381,
                                54
                            ],
                            "name": "mouseY",
                            "start": [
                                381,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                381,
                                62
                            ],
                            "name": "button",
                            "start": [
                                381,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle scrollbar mouse press\n\n@*return* — True if event was consumed",
                    "finish": [
                        422,
                        3
                    ],
                    "rawdesc": " Handle scrollbar mouse press",
                    "returns": [
                        {
                            "desc": "True if event was consumed",
                            "rawdesc": "True if event was consumed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        381,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:handleMousePress(mouseX: number, mouseY: number, button: number)\n  -> boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    381,
                    39
                ],
                "name": "handleMousePress",
                "rawdesc": " Handle scrollbar mouse press",
                "start": [
                    381,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle scrollbar release\n\n@*return* — True if event was consumed",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                480,
                                8
                            ],
                            "name": "self",
                            "start": [
                                480,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "finish": [
                                480,
                                48
                            ],
                            "name": "button",
                            "start": [
                                480,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle scrollbar release\n\n@*return* — True if event was consumed",
                    "finish": [
                        491,
                        3
                    ],
                    "rawdesc": " Handle scrollbar release",
                    "returns": [
                        {
                            "desc": "True if event was consumed",
                            "rawdesc": "True if event was consumed",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        480,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:handleMouseRelease(button: number)\n  -> boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    480,
                    41
                ],
                "name": "handleMouseRelease",
                "rawdesc": " Handle scrollbar release",
                "start": [
                    480,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Handle mouse wheel scrolling\n\n@*param* `x` — Horizontal scroll amount\n\n@*param* `y` — Vertical scroll amount\n\n@*return* — True if scroll was handled",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                542,
                                8
                            ],
                            "name": "self",
                            "start": [
                                542,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "desc": "Horizontal scroll amount",
                            "finish": [
                                542,
                                36
                            ],
                            "name": "x",
                            "rawdesc": "Horizontal scroll amount",
                            "start": [
                                542,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Vertical scroll amount",
                            "finish": [
                                542,
                                39
                            ],
                            "name": "y",
                            "rawdesc": "Vertical scroll amount",
                            "start": [
                                542,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Handle mouse wheel scrolling\n\n@*param* `x` — Horizontal scroll amount\n\n@*param* `y` — Vertical scroll amount\n\n@*return* — True if scroll was handled",
                    "finish": [
                        572,
                        3
                    ],
                    "rawdesc": " Handle mouse wheel scrolling",
                    "returns": [
                        {
                            "desc": "True if scroll was handled",
                            "rawdesc": "True if scroll was handled",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        542,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:handleWheel(x: number, y: number)\n  -> boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    542,
                    34
                ],
                "name": "handleWheel",
                "rawdesc": " Handle mouse wheel scrolling",
                "start": [
                    542,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if element has overflow",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                207,
                                8
                            ],
                            "name": "self",
                            "start": [
                                207,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Check if element has overflow",
                    "finish": [
                        209,
                        3
                    ],
                    "rawdesc": " Check if element has overflow",
                    "returns": [
                        {
                            "name": "hasOverflowX",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "hasOverflowY",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        207,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:hasOverflow()\n  -> hasOverflowX: boolean\n  2. hasOverflowY: boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    207,
                    34
                ],
                "name": "hasOverflow",
                "rawdesc": " Check if element has overflow",
                "start": [
                    207,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "{vertical: boolean, horizontal: boolean}",
                "extends": {
                    "finish": [
                        10,
                        30
                    ],
                    "start": [
                        10,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                10,
                                30
                            ],
                            "start": [
                                10,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    10,
                    30
                ],
                "name": "hideScrollbars",
                "rawdesc": "{vertical: boolean, horizontal: boolean}",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Initialize with parent element reference\n\n@*param* `element` — The parent Element instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                87,
                                8
                            ],
                            "name": "self",
                            "start": [
                                87,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "desc": "The parent Element instance",
                            "finish": [
                                87,
                                41
                            ],
                            "name": "element",
                            "rawdesc": "The parent Element instance",
                            "start": [
                                87,
                                34
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Initialize with parent element reference\n\n@*param* `element` — The parent Element instance",
                    "finish": [
                        89,
                        3
                    ],
                    "rawdesc": " Initialize with parent element reference",
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:initialize(element: table)"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    87,
                    33
                ],
                "name": "initialize",
                "rawdesc": " Initialize with parent element reference",
                "start": [
                    87,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Create a new ScrollManager instance\n\n@*param* `config` — Configuration options\n\n@*param* `deps` — Dependencies {Color: Color module, utils: utils module}",
                "extends": {
                    "args": [
                        {
                            "desc": "Configuration options",
                            "finish": [
                                35,
                                33
                            ],
                            "name": "config",
                            "rawdesc": "Configuration options",
                            "start": [
                                35,
                                27
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Dependencies {Color: Color module, utils: utils module}",
                            "finish": [
                                35,
                                39
                            ],
                            "name": "deps",
                            "rawdesc": "Dependencies {Color: Color module, utils: utils module}",
                            "start": [
                                35,
                                35
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Create a new ScrollManager instance\n\n@*param* `config` — Configuration options\n\n@*param* `deps` — Dependencies {Color: Color module, utils: utils module}",
                    "finish": [
                        83,
                        3
                    ],
                    "rawdesc": " Create a new ScrollManager instance",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "ScrollManager"
                        }
                    ],
                    "start": [
                        35,
                        0
                    ],
                    "type": "function",
                    "view": "function ScrollManager.new(config: table, deps: table)\n  -> ScrollManager"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    35,
                    26
                ],
                "name": "new",
                "rawdesc": " Create a new ScrollManager instance",
                "start": [
                    35,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "visible",
                "extends": {
                    "finish": [
                        1,
                        25
                    ],
                    "start": [
                        1,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                1,
                                25
                            ],
                            "start": [
                                1,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    1,
                    25
                ],
                "name": "overflow",
                "rawdesc": "visible",
                "start": [
                    1,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "X-axis specific overflow (overrides overflow)",
                "extends": {
                    "finish": [
                        2,
                        27
                    ],
                    "start": [
                        2,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                2,
                                26
                            ],
                            "start": [
                                2,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    2,
                    27
                ],
                "name": "overflowX",
                "rawdesc": "X-axis specific overflow (overrides overflow)",
                "start": [
                    2,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Y-axis specific overflow (overrides overflow)",
                "extends": {
                    "finish": [
                        3,
                        27
                    ],
                    "start": [
                        3,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                26
                            ],
                            "start": [
                                3,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    3,
                    27
                ],
                "name": "overflowY",
                "rawdesc": "Y-axis specific overflow (overrides overflow)",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Reset scrollbar press handled flag (call at start of frame)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                595,
                                8
                            ],
                            "name": "self",
                            "start": [
                                595,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Reset scrollbar press handled flag (call at start of frame)",
                    "finish": [
                        597,
                        3
                    ],
                    "rawdesc": " Reset scrollbar press handled flag (call at start of frame)",
                    "start": [
                        595,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:resetScrollbarPressFlag()"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    595,
                    46
                ],
                "name": "resetScrollbarPressFlag",
                "rawdesc": " Reset scrollbar press handled flag (call at start of frame)",
                "start": [
                    595,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Scroll by delta amount\n\n@*param* `dx` — X delta (nil for no change)\n\n@*param* `dy` — Y delta (nil for no change)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                182,
                                8
                            ],
                            "name": "self",
                            "start": [
                                182,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "desc": "X delta (nil for no change)",
                            "finish": [
                                182,
                                34
                            ],
                            "name": "dx",
                            "rawdesc": "X delta (nil for no change)",
                            "start": [
                                182,
                                32
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y delta (nil for no change)",
                            "finish": [
                                182,
                                38
                            ],
                            "name": "dy",
                            "rawdesc": "Y delta (nil for no change)",
                            "start": [
                                182,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Scroll by delta amount\n\n@*param* `dx` — X delta (nil for no change)\n\n@*param* `dy` — Y delta (nil for no change)",
                    "finish": [
                        189,
                        3
                    ],
                    "rawdesc": " Scroll by delta amount",
                    "start": [
                        182,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:scrollBy(dx?: number, dy?: number)"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    182,
                    31
                ],
                "name": "scrollBy",
                "rawdesc": " Scroll by delta amount",
                "start": [
                    182,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scroll speed for wheel events (pixels per wheel unit)",
                "extends": {
                    "finish": [
                        9,
                        28
                    ],
                    "start": [
                        9,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                28
                            ],
                            "start": [
                                9,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    9,
                    28
                ],
                "name": "scrollSpeed",
                "rawdesc": "Scroll speed for wheel events (pixels per wheel unit)",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar thumb color",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        5,
                        30
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        5,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                5,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                5,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    5,
                    30
                ],
                "name": "scrollbarColor",
                "rawdesc": "Scrollbar thumb color",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Padding around scrollbar",
                "extends": {
                    "finish": [
                        8,
                        33
                    ],
                    "start": [
                        8,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                33
                            ],
                            "start": [
                                8,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    8,
                    33
                ],
                "name": "scrollbarPadding",
                "rawdesc": "Padding around scrollbar",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Border radius for scrollbars",
                "extends": {
                    "finish": [
                        7,
                        32
                    ],
                    "start": [
                        7,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                32
                            ],
                            "start": [
                                7,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    7,
                    32
                ],
                "name": "scrollbarRadius",
                "rawdesc": "Border radius for scrollbars",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scrollbar track background color",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        6,
                        35
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        6,
                        30
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                6,
                                35
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                6,
                                30
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    6,
                    35
                ],
                "name": "scrollbarTrackColor",
                "rawdesc": "Scrollbar track background color",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "Color",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Width/height of scrollbar track",
                "extends": {
                    "finish": [
                        4,
                        31
                    ],
                    "start": [
                        4,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                31
                            ],
                            "start": [
                                4,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    4,
                    31
                ],
                "name": "scrollbarWidth",
                "rawdesc": "Width/height of scrollbar track",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set scroll position with bounds clamping\n\n@*param* `x` — X scroll position (nil to keep current)\n\n@*param* `y` — Y scroll position (nil to keep current)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                164,
                                8
                            ],
                            "name": "self",
                            "start": [
                                164,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "desc": "X scroll position (nil to keep current)",
                            "finish": [
                                164,
                                34
                            ],
                            "name": "x",
                            "rawdesc": "X scroll position (nil to keep current)",
                            "start": [
                                164,
                                33
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y scroll position (nil to keep current)",
                            "finish": [
                                164,
                                37
                            ],
                            "name": "y",
                            "rawdesc": "Y scroll position (nil to keep current)",
                            "start": [
                                164,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": " Set scroll position with bounds clamping\n\n@*param* `x` — X scroll position (nil to keep current)\n\n@*param* `y` — Y scroll position (nil to keep current)",
                    "finish": [
                        171,
                        3
                    ],
                    "rawdesc": " Set scroll position with bounds clamping",
                    "start": [
                        164,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:setScroll(x?: number, y?: number)"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    164,
                    32
                ],
                "name": "setScroll",
                "rawdesc": " Set scroll position with bounds clamping",
                "start": [
                    164,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set scrollbar press handled flag",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                606,
                                8
                            ],
                            "name": "self",
                            "start": [
                                606,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Set scrollbar press handled flag",
                    "finish": [
                        608,
                        3
                    ],
                    "rawdesc": " Set scrollbar press handled flag",
                    "start": [
                        606,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:setScrollbarPressHandled()"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    606,
                    47
                ],
                "name": "setScrollbarPressHandled",
                "rawdesc": " Set scrollbar press handled flag",
                "start": [
                    606,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set state from immediate mode persistence\n\n@*param* `state` — State data",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                624,
                                8
                            ],
                            "name": "self",
                            "start": [
                                624,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "desc": "State data",
                            "finish": [
                                624,
                                37
                            ],
                            "name": "state",
                            "rawdesc": "State data",
                            "start": [
                                624,
                                32
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Set state from immediate mode persistence\n\n@*param* `state` — State data",
                    "finish": [
                        644,
                        3
                    ],
                    "rawdesc": " Set state from immediate mode persistence",
                    "start": [
                        624,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:setState(state: table)"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    624,
                    31
                ],
                "name": "setState",
                "rawdesc": " Set state from immediate mode persistence",
                "start": [
                    624,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Update scrollbar hover state based on mouse position",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                577,
                                8
                            ],
                            "name": "self",
                            "start": [
                                577,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        },
                        {
                            "finish": [
                                577,
                                46
                            ],
                            "name": "mouseX",
                            "start": [
                                577,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                577,
                                54
                            ],
                            "name": "mouseY",
                            "start": [
                                577,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": " Update scrollbar hover state based on mouse position",
                    "finish": [
                        592,
                        3
                    ],
                    "rawdesc": " Update scrollbar hover state based on mouse position",
                    "start": [
                        577,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:updateHoverState(mouseX: number, mouseY: number)"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    577,
                    39
                ],
                "name": "updateHoverState",
                "rawdesc": " Update scrollbar hover state based on mouse position",
                "start": [
                    577,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if scrollbar press was handled this frame",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                601,
                                8
                            ],
                            "name": "self",
                            "start": [
                                601,
                                8
                            ],
                            "type": "self",
                            "view": "ScrollManager"
                        }
                    ],
                    "desc": " Check if scrollbar press was handled this frame",
                    "finish": [
                        603,
                        3
                    ],
                    "rawdesc": " Check if scrollbar press was handled this frame",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        601,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ScrollManager:wasScrollbarPressHandled()\n  -> boolean"
                },
                "file": "modules/ScrollManager.lua",
                "finish": [
                    601,
                    47
                ],
                "name": "wasScrollbarPressHandled",
                "rawdesc": " Check if scrollbar press was handled this frame",
                "start": [
                    601,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ScrollManager",
        "type": "type",
        "view": "ScrollManager"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/StateManager.lua",
                "finish": [
                    0,
                    22
                ],
                "start": [
                    0,
                    10
                ],
                "type": "doc.class",
                "view": "StateManager",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Clean up stale states (not accessed recently)\n\n@*return* `count` — Number of states cleaned up",
                "extends": {
                    "args": [],
                    "desc": " Clean up stale states (not accessed recently)\n\n@*return* `count` — Number of states cleaned up",
                    "finish": [
                        400,
                        3
                    ],
                    "rawdesc": " Clean up stale states (not accessed recently)",
                    "returns": [
                        {
                            "desc": "Number of states cleaned up",
                            "name": "count",
                            "rawdesc": "Number of states cleaned up",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        385,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.cleanup()\n  -> count: number"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    385,
                    29
                ],
                "name": "cleanup",
                "rawdesc": " Clean up stale states (not accessed recently)",
                "start": [
                    385,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear all states",
                "extends": {
                    "args": [],
                    "desc": " Clear all states",
                    "finish": [
                        441,
                        3
                    ],
                    "rawdesc": " Clear all states",
                    "start": [
                        438,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.clearAllStates()"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    438,
                    36
                ],
                "name": "clearAllStates",
                "rawdesc": " Clear all states",
                "start": [
                    438,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Clear state for a specific element ID\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                339,
                                35
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                339,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Clear state for a specific element ID\n\n@*param* `id` — Element ID",
                    "finish": [
                        342,
                        3
                    ],
                    "rawdesc": " Clear state for a specific element ID",
                    "start": [
                        339,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.clearState(id: string)"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    339,
                    32
                ],
                "name": "clearState",
                "rawdesc": " Clear state for a specific element ID",
                "start": [
                    339,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Configure state management",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                445,
                                41
                            ],
                            "name": "newConfig",
                            "start": [
                                445,
                                32
                            ],
                            "type": "local",
                            "view": "{ stateRetentionFrames: number, maxStateEntries: number }"
                        }
                    ],
                    "desc": " Configure state management",
                    "finish": [
                        452,
                        3
                    ],
                    "rawdesc": " Configure state management",
                    "start": [
                        445,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.configure(newConfig: { stateRetentionFrames: number, maxStateEntries: number })"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    445,
                    31
                ],
                "name": "configure",
                "rawdesc": " Configure state management",
                "start": [
                    445,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Dump all states for debugging\n\n@*return* `states` — Copy of all states with metadata",
                "extends": {
                    "args": [],
                    "desc": " Dump all states for debugging\n\n@*return* `states` — Copy of all states with metadata",
                    "finish": [
                        491,
                        3
                    ],
                    "rawdesc": " Dump all states for debugging",
                    "returns": [
                        {
                            "desc": "Copy of all states with metadata",
                            "name": "states",
                            "rawdesc": "Copy of all states with metadata",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        480,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.dumpStates()\n  -> states: table"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    480,
                    32
                ],
                "name": "dumpStates",
                "rawdesc": " Dump all states for debugging",
                "start": [
                    480,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Force cleanup if state count exceeds maximum\n\n@*return* `count` — Number of states cleaned up",
                "extends": {
                    "args": [],
                    "desc": " Force cleanup if state count exceeds maximum\n\n@*return* `count` — Number of states cleaned up",
                    "finish": [
                        425,
                        3
                    ],
                    "rawdesc": " Force cleanup if state count exceeds maximum",
                    "returns": [
                        {
                            "desc": "Number of states cleaned up",
                            "name": "count",
                            "rawdesc": "Number of states cleaned up",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        404,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.forceCleanupIfNeeded()\n  -> count: number"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    404,
                    42
                ],
                "name": "forceCleanupIfNeeded",
                "rawdesc": " Force cleanup if state count exceeds maximum",
                "start": [
                    404,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Generate a unique ID from call site and properties\n\n@*param* `props` — Optional properties to include in ID generation\n\n@*param* `parent` — Optional parent element for tree-based ID generation",
                "extends": {
                    "args": [
                        {
                            "desc": "Optional properties to include in ID generation",
                            "finish": [
                                102,
                                38
                            ],
                            "name": "props",
                            "rawdesc": "Optional properties to include in ID generation",
                            "start": [
                                102,
                                33
                            ],
                            "type": "local",
                            "view": "table|nil"
                        },
                        {
                            "desc": "Optional parent element for tree-based ID generation",
                            "finish": [
                                102,
                                46
                            ],
                            "name": "parent",
                            "rawdesc": "Optional parent element for tree-based ID generation",
                            "start": [
                                102,
                                40
                            ],
                            "type": "local",
                            "view": "table|nil"
                        }
                    ],
                    "desc": " Generate a unique ID from call site and properties\n\n@*param* `props` — Optional properties to include in ID generation\n\n@*param* `parent` — Optional parent element for tree-based ID generation",
                    "finish": [
                        171,
                        3
                    ],
                    "rawdesc": " Generate a unique ID from call site and properties",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.generateID(props: table|nil, parent: table|nil)\n  -> string"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    102,
                    32
                ],
                "name": "generateID",
                "rawdesc": " Generate a unique ID from call site and properties",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the active state values for an element (interaction states only)\n\n@*param* `id` — Element ID\n\n@*return* `state` — Active state values",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                515,
                                39
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                515,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get the active state values for an element (interaction states only)\n\n@*param* `id` — Element ID\n\n@*return* `state` — Active state values",
                    "finish": [
                        531,
                        3
                    ],
                    "rawdesc": " Get the active state values for an element (interaction states only)",
                    "returns": [
                        {
                            "desc": "Active state values",
                            "name": "state",
                            "rawdesc": "Active state values",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        515,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getActiveState(id: string)\n  -> state: table"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    515,
                    36
                ],
                "name": "getActiveState",
                "rawdesc": " Get the active state values for an element (interaction states only)",
                "start": [
                    515,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the current state for an element ID (alias for getState)\n\n@*param* `id` — Element ID\n\n@*return* `state` — State object for the element",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                508,
                                40
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                508,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get the current state for an element ID (alias for getState)\n\n@*param* `id` — Element ID\n\n@*return* `state` — State object for the element",
                    "finish": [
                        510,
                        3
                    ],
                    "rawdesc": " Get the current state for an element ID (alias for getState)",
                    "returns": [
                        {
                            "desc": "State object for the element",
                            "name": "state",
                            "rawdesc": "State object for the element",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        508,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getCurrentState(id: string)\n  -> state: table"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    508,
                    37
                ],
                "name": "getCurrentState",
                "rawdesc": " Get the current state for an element ID (alias for getState)",
                "start": [
                    508,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get current frame number",
                "extends": {
                    "args": [],
                    "desc": " Get current frame number",
                    "finish": [
                        377,
                        3
                    ],
                    "rawdesc": " Get current frame number",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        375,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getFrameNumber()\n  -> number"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    375,
                    36
                ],
                "name": "getFrameNumber",
                "rawdesc": " Get current frame number",
                "start": [
                    375,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the last frame number when state was accessed\n\n@*param* `id` — Element ID\n\n@*return* `frameNumber` — Last accessed frame, or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                355,
                                45
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                355,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get the last frame number when state was accessed\n\n@*param* `id` — Element ID\n\n@*return* `frameNumber` — Last accessed frame, or nil if not found",
                    "finish": [
                        360,
                        3
                    ],
                    "rawdesc": " Get the last frame number when state was accessed",
                    "returns": [
                        {
                            "desc": "Last accessed frame, or nil if not found",
                            "name": "frameNumber",
                            "rawdesc": "Last accessed frame, or nil if not found",
                            "type": "function.return",
                            "view": "number|nil"
                        }
                    ],
                    "start": [
                        355,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getLastAccessedFrame(id: string)\n  -> frameNumber: number|nil"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    355,
                    42
                ],
                "name": "getLastAccessedFrame",
                "rawdesc": " Get the last frame number when state was accessed",
                "start": [
                    355,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get state for an element ID, creating if it doesn't exist\n\n@*param* `id` — Element ID\n\n@*param* `defaultState` — Default state if creating new\n\n@*return* `state` — State table for the element",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                181,
                                33
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                181,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Default state if creating new",
                            "finish": [
                                181,
                                47
                            ],
                            "name": "defaultState",
                            "rawdesc": "Default state if creating new",
                            "start": [
                                181,
                                35
                            ],
                            "type": "local",
                            "view": "table|nil"
                        }
                    ],
                    "desc": " Get state for an element ID, creating if it doesn't exist\n\n@*param* `id` — Element ID\n\n@*param* `defaultState` — Default state if creating new\n\n@*return* `state` — State table for the element",
                    "finish": [
                        298,
                        3
                    ],
                    "rawdesc": " Get state for an element ID, creating if it doesn't exist",
                    "returns": [
                        {
                            "desc": "State table for the element",
                            "name": "state",
                            "rawdesc": "State table for the element",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getState(id: string, defaultState: table|nil)\n  -> state: table"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    181,
                    30
                ],
                "name": "getState",
                "rawdesc": " Get state for an element ID, creating if it doesn't exist",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get total number of stored states",
                "extends": {
                    "args": [],
                    "desc": " Get total number of stored states",
                    "finish": [
                        435,
                        3
                    ],
                    "rawdesc": " Get total number of stored states",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        429,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getStateCount()\n  -> number"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    429,
                    35
                ],
                "name": "getStateCount",
                "rawdesc": " Get total number of stored states",
                "start": [
                    429,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get state statistics for debugging",
                "extends": {
                    "args": [],
                    "desc": " Get state statistics for debugging",
                    "finish": [
                        476,
                        3
                    ],
                    "rawdesc": " Get state statistics for debugging",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "{ stateCount: number, frameNumber: number, oldestState: number|nil, newestState: number|nil }"
                        }
                    ],
                    "start": [
                        456,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.getStats()\n  -> { stateCount: number, frameNumber: number, oldestState: number|nil, newestState: number|nil }"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    456,
                    30
                ],
                "name": "getStats",
                "rawdesc": " Get state statistics for debugging",
                "start": [
                    456,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Increment frame counter (called at frame start)",
                "extends": {
                    "args": [],
                    "desc": " Increment frame counter (called at frame start)",
                    "finish": [
                        371,
                        3
                    ],
                    "rawdesc": " Increment frame counter (called at frame start)",
                    "start": [
                        367,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.incrementFrame()"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    367,
                    36
                ],
                "name": "incrementFrame",
                "rawdesc": " Increment frame counter (called at frame start)",
                "start": [
                    367,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if an element is active (e.g., input focused)\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                568,
                                33
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                568,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Check if an element is active (e.g., input focused)\n\n@*param* `id` — Element ID",
                    "finish": [
                        571,
                        3
                    ],
                    "rawdesc": " Check if an element is active (e.g., input focused)",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        568,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.isActive(id: string)\n  -> boolean"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    568,
                    30
                ],
                "name": "isActive",
                "rawdesc": " Check if an element is active (e.g., input focused)",
                "start": [
                    568,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if an element is disabled\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                560,
                                35
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                560,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Check if an element is disabled\n\n@*param* `id` — Element ID",
                    "finish": [
                        563,
                        3
                    ],
                    "rawdesc": " Check if an element is disabled",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        560,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.isDisabled(id: string)\n  -> boolean"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    560,
                    32
                ],
                "name": "isDisabled",
                "rawdesc": " Check if an element is disabled",
                "start": [
                    560,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if an element is currently focused\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                552,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                552,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Check if an element is currently focused\n\n@*param* `id` — Element ID",
                    "finish": [
                        555,
                        3
                    ],
                    "rawdesc": " Check if an element is currently focused",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        552,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.isFocused(id: string)\n  -> boolean"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    552,
                    31
                ],
                "name": "isFocused",
                "rawdesc": " Check if an element is currently focused",
                "start": [
                    552,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if an element is currently hovered\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                536,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                536,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Check if an element is currently hovered\n\n@*param* `id` — Element ID",
                    "finish": [
                        539,
                        3
                    ],
                    "rawdesc": " Check if an element is currently hovered",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        536,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.isHovered(id: string)\n  -> boolean"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    536,
                    31
                ],
                "name": "isHovered",
                "rawdesc": " Check if an element is currently hovered",
                "start": [
                    536,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if an element is currently pressed\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                544,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                544,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Check if an element is currently pressed\n\n@*param* `id` — Element ID",
                    "finish": [
                        547,
                        3
                    ],
                    "rawdesc": " Check if an element is currently pressed",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        544,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.isPressed(id: string)\n  -> boolean"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    544,
                    31
                ],
                "name": "isPressed",
                "rawdesc": " Check if an element is currently pressed",
                "start": [
                    544,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Mark state as used this frame (updates last accessed frame)\n\n@*param* `id` — Element ID",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                346,
                                38
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                346,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Mark state as used this frame (updates last accessed frame)\n\n@*param* `id` — Element ID",
                    "finish": [
                        350,
                        3
                    ],
                    "rawdesc": " Mark state as used this frame (updates last accessed frame)",
                    "start": [
                        346,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.markStateUsed(id: string)"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    346,
                    35
                ],
                "name": "markStateUsed",
                "rawdesc": " Mark state as used this frame (updates last accessed frame)",
                "start": [
                    346,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Reset the entire state system (for testing)",
                "extends": {
                    "args": [],
                    "desc": " Reset the entire state system (for testing)",
                    "finish": [
                        499,
                        3
                    ],
                    "rawdesc": " Reset the entire state system (for testing)",
                    "start": [
                        494,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.reset()"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    494,
                    27
                ],
                "name": "reset",
                "rawdesc": " Reset the entire state system (for testing)",
                "start": [
                    494,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Set state for an element ID (replaces entire state)\n\n@*param* `id` — Element ID\n\n@*param* `state` — State to store",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                303,
                                33
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                303,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "State to store",
                            "finish": [
                                303,
                                40
                            ],
                            "name": "state",
                            "rawdesc": "State to store",
                            "start": [
                                303,
                                35
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Set state for an element ID (replaces entire state)\n\n@*param* `id` — Element ID\n\n@*param* `state` — State to store",
                    "finish": [
                        320,
                        3
                    ],
                    "rawdesc": " Set state for an element ID (replaces entire state)",
                    "start": [
                        303,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.setState(id: string, state: table)"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    303,
                    30
                ],
                "name": "setState",
                "rawdesc": " Set state for an element ID (replaces entire state)",
                "start": [
                    303,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Update state for an element ID (merges with existing state)\n\n@*param* `id` — Element ID\n\n@*param* `newState` — New state values to merge",
                "extends": {
                    "args": [
                        {
                            "desc": "Element ID",
                            "finish": [
                                325,
                                36
                            ],
                            "name": "id",
                            "rawdesc": "Element ID",
                            "start": [
                                325,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "New state values to merge",
                            "finish": [
                                325,
                                46
                            ],
                            "name": "newState",
                            "rawdesc": "New state values to merge",
                            "start": [
                                325,
                                38
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": " Update state for an element ID (merges with existing state)\n\n@*param* `id` — Element ID\n\n@*param* `newState` — New state values to merge",
                    "finish": [
                        335,
                        3
                    ],
                    "rawdesc": " Update state for an element ID (merges with existing state)",
                    "start": [
                        325,
                        0
                    ],
                    "type": "function",
                    "view": "function StateManager.updateState(id: string, newState: table)"
                },
                "file": "modules/StateManager.lua",
                "finish": [
                    325,
                    33
                ],
                "name": "updateState",
                "rawdesc": " Update state for an element ID (merges with existing state)",
                "start": [
                    325,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "StateManager",
        "type": "type",
        "view": "StateManager"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/TextEditor.lua",
                "finish": [
                    2,
                    20
                ],
                "start": [
                    2,
                    10
                ],
                "type": "doc.class",
                "view": "TextEditor",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        47,
                        22
                    ],
                    "start": [
                        47,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                47,
                                22
                            ],
                            "start": [
                                47,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    47,
                    22
                ],
                "name": "_Color",
                "start": [
                    47,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        45,
                        24
                    ],
                    "start": [
                        45,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                45,
                                24
                            ],
                            "start": [
                                45,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    45,
                    24
                ],
                "name": "_Context",
                "start": [
                    45,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        48,
                        27
                    ],
                    "start": [
                        48,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                48,
                                27
                            ],
                            "start": [
                                48,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    48,
                    27
                ],
                "name": "_FONT_CACHE",
                "start": [
                    48,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        46,
                        29
                    ],
                    "start": [
                        46,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                46,
                                29
                            ],
                            "start": [
                                46,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    46,
                    29
                ],
                "name": "_StateManager",
                "start": [
                    46,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        53,
                        31
                    ],
                    "start": [
                        53,
                        21
                    ],
                    "type": "getlocal",
                    "view": "TextEditor"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    53,
                    18
                ],
                "name": "__index",
                "start": [
                    53,
                    0
                ],
                "type": "setfield",
                "view": "TextEditor",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Calculate text wrapping",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                402,
                                8
                            ],
                            "name": "self",
                            "start": [
                                402,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Calculate text wrapping",
                    "finish": [
                        427,
                        3
                    ],
                    "rawdesc": "Calculate text wrapping",
                    "start": [
                        402,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_calculateWrapping()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    402,
                    38
                ],
                "name": "_calculateWrapping",
                "rawdesc": "Calculate text wrapping",
                "start": [
                    402,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        32,
                        39
                    ],
                    "start": [
                        32,
                        33
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                32,
                                39
                            ],
                            "start": [
                                32,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    32,
                    39
                ],
                "name": "_cursorBlinkPauseTimer",
                "start": [
                    32,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        31,
                        36
                    ],
                    "start": [
                        31,
                        29
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                31,
                                36
                            ],
                            "start": [
                                31,
                                29
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    31,
                    36
                ],
                "name": "_cursorBlinkPaused",
                "start": [
                    31,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        29,
                        34
                    ],
                    "start": [
                        29,
                        28
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                29,
                                34
                            ],
                            "start": [
                                29,
                                28
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    29,
                    34
                ],
                "name": "_cursorBlinkTimer",
                "start": [
                    29,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        28,
                        30
                    ],
                    "start": [
                        28,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                28,
                                30
                            ],
                            "start": [
                                28,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    28,
                    30
                ],
                "name": "_cursorColumn",
                "start": [
                    28,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        27,
                        28
                    ],
                    "start": [
                        27,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                27,
                                28
                            ],
                            "start": [
                                27,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    27,
                    28
                ],
                "name": "_cursorLine",
                "start": [
                    27,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        26,
                        32
                    ],
                    "start": [
                        26,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                26,
                                32
                            ],
                            "start": [
                                26,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    26,
                    32
                ],
                "name": "_cursorPosition",
                "start": [
                    26,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        30,
                        32
                    ],
                    "start": [
                        30,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                30,
                                32
                            ],
                            "start": [
                                30,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    30,
                    32
                ],
                "name": "_cursorVisible",
                "start": [
                    30,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        44,
                        27
                    ],
                    "start": [
                        44,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                44,
                                26
                            ],
                            "start": [
                                44,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    44,
                    27
                ],
                "name": "_element",
                "start": [
                    44,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        36,
                        26
                    ],
                    "start": [
                        36,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                36,
                                26
                            ],
                            "start": [
                                36,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    36,
                    26
                ],
                "name": "_focused",
                "start": [
                    36,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get cursor screen position for rendering (handles multiline text)\n\n@*return* — Cursor X and Y position relative to content area",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                663,
                                8
                            ],
                            "name": "self",
                            "start": [
                                663,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Get cursor screen position for rendering (handles multiline text)\n\n@*return* — Cursor X and Y position relative to content area",
                    "finish": [
                        771,
                        3
                    ],
                    "rawdesc": "Get cursor screen position for rendering (handles multiline text)",
                    "returns": [
                        {
                            "desc": "Cursor X and Y position relative to content area",
                            "rawdesc": "Cursor X and Y position relative to content area",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Cursor X and Y position relative to content area",
                            "rawdesc": "Cursor X and Y position relative to content area",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        663,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_getCursorScreenPosition()\n  -> number\n  2. number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    663,
                    44
                ],
                "name": "_getCursorScreenPosition",
                "rawdesc": "Get cursor screen position for rendering (handles multiline text)",
                "start": [
                    663,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get font for text rendering",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1639,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1639,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Get font for text rendering",
                    "finish": [
                        1646,
                        3
                    ],
                    "rawdesc": "Get font for text rendering",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "(love.Font)?"
                        }
                    ],
                    "start": [
                        1639,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_getFont()\n  -> (love.Font)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1639,
                    28
                ],
                "name": "_getFont",
                "rawdesc": "Get font for text rendering",
                "start": [
                    1639,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        49,
                        32
                    ],
                    "start": [
                        49,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                49,
                                32
                            ],
                            "start": [
                                49,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "function"
                        }
                    ],
                    "view": "function"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    49,
                    32
                ],
                "name": "_getModifiers",
                "start": [
                    49,
                    10
                ],
                "type": "doc.field",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get selection rectangles for rendering\n\n@*param* `selStart` — Selection start position\n\n@*param* `selEnd` — Selection end position\n\n@*return* — Array of rectangles {x, y, width, height}",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                876,
                                8
                            ],
                            "name": "self",
                            "start": [
                                876,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Selection start position",
                            "finish": [
                                876,
                                47
                            ],
                            "name": "selStart",
                            "rawdesc": "Selection start position",
                            "start": [
                                876,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Selection end position",
                            "finish": [
                                876,
                                55
                            ],
                            "name": "selEnd",
                            "rawdesc": "Selection end position",
                            "start": [
                                876,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Get selection rectangles for rendering\n\n@*param* `selStart` — Selection start position\n\n@*param* `selEnd` — Selection end position\n\n@*return* — Array of rectangles {x, y, width, height}",
                    "finish": [
                        1017,
                        3
                    ],
                    "rawdesc": "Get selection rectangles for rendering",
                    "returns": [
                        {
                            "desc": "Array of rectangles {x, y, width, height}",
                            "rawdesc": "Array of rectangles {x, y, width, height}",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        876,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_getSelectionRects(selStart: number, selEnd: number)\n  -> table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    876,
                    38
                ],
                "name": "_getSelectionRects",
                "rawdesc": "Get selection rectangles for rendering",
                "start": [
                    876,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        23,
                        23
                    ],
                    "start": [
                        23,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                23,
                                22
                            ],
                            "start": [
                                23,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    23,
                    23
                ],
                "name": "_lines",
                "start": [
                    23,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Mark text as dirty (needs recalculation)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                360,
                                8
                            ],
                            "name": "self",
                            "start": [
                                360,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Mark text as dirty (needs recalculation)",
                    "finish": [
                        362,
                        3
                    ],
                    "rawdesc": "Mark text as dirty (needs recalculation)",
                    "start": [
                        360,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_markTextDirty()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    360,
                    34
                ],
                "name": "_markTextDirty",
                "rawdesc": "Mark text as dirty (needs recalculation)",
                "start": [
                    360,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        1461,
                        33
                    ],
                    "start": [
                        1461,
                        30
                    ],
                    "type": "getlocal",
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1461,
                    27
                ],
                "name": "_mouseDownPosition",
                "start": [
                    1461,
                    4
                ],
                "type": "setfield",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Reset cursor blink (show cursor immediately)\n\n@*param* `pauseBlink` — Whether to pause blinking (for typing)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                605,
                                8
                            ],
                            "name": "self",
                            "start": [
                                605,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Whether to pause blinking (for typing)",
                            "finish": [
                                605,
                                48
                            ],
                            "name": "pauseBlink",
                            "rawdesc": "Whether to pause blinking (for typing)",
                            "start": [
                                605,
                                38
                            ],
                            "type": "local",
                            "view": "boolean|nil"
                        }
                    ],
                    "desc": "Reset cursor blink (show cursor immediately)\n\n@*param* `pauseBlink` — Whether to pause blinking (for typing)",
                    "finish": [
                        615,
                        3
                    ],
                    "rawdesc": "Reset cursor blink (show cursor immediately)",
                    "start": [
                        605,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_resetCursorBlink(pauseBlink: boolean|nil)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    605,
                    37
                ],
                "name": "_resetCursorBlink",
                "rawdesc": "Reset cursor blink (show cursor immediately)",
                "start": [
                    605,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: Sanitize text input\n\n@*param* `text` — Text to sanitize\n\n@*return* — Sanitized text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                163,
                                8
                            ],
                            "name": "self",
                            "start": [
                                163,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Text to sanitize",
                            "finish": [
                                163,
                                38
                            ],
                            "name": "text",
                            "rawdesc": "Text to sanitize",
                            "start": [
                                163,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "Internal: Sanitize text input\n\n@*param* `text` — Text to sanitize\n\n@*return* — Sanitized text",
                    "finish": [
                        188,
                        3
                    ],
                    "rawdesc": "Internal: Sanitize text input",
                    "returns": [
                        {
                            "desc": "Sanitized text",
                            "rawdesc": "Sanitized text",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_sanitizeText(text: string)\n  -> string"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    163,
                    33
                ],
                "name": "_sanitizeText",
                "rawdesc": "Internal: Sanitize text input",
                "start": [
                    163,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Save state to StateManager (for immediate mode)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1649,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1649,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Save state to StateManager (for immediate mode)",
                    "finish": [
                        1665,
                        3
                    ],
                    "rawdesc": "Save state to StateManager (for immediate mode)",
                    "start": [
                        1649,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_saveState()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1649,
                    30
                ],
                "name": "_saveState",
                "rawdesc": "Save state to StateManager (for immediate mode)",
                "start": [
                    1649,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Select word at given position",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1494,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1494,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "finish": [
                                1494,
                                50
                            ],
                            "name": "position",
                            "start": [
                                1494,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Select word at given position",
                    "finish": [
                        1546,
                        3
                    ],
                    "rawdesc": "Select word at given position",
                    "start": [
                        1494,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_selectWordAtPosition(position: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1494,
                    41
                ],
                "name": "_selectWordAtPosition",
                "rawdesc": "Select word at given position",
                "start": [
                    1494,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        35,
                        34
                    ],
                    "start": [
                        35,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                35,
                                33
                            ],
                            "start": [
                                35,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    35,
                    34
                ],
                "name": "_selectionAnchor",
                "start": [
                    35,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        34,
                        31
                    ],
                    "start": [
                        34,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                34,
                                30
                            ],
                            "start": [
                                34,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    34,
                    31
                ],
                "name": "_selectionEnd",
                "start": [
                    34,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        33,
                        33
                    ],
                    "start": [
                        33,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                33,
                                32
                            ],
                            "start": [
                                33,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    33,
                    33
                ],
                "name": "_selectionStart",
                "start": [
                    33,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Split text into lines (for multi-line text)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                381,
                                8
                            ],
                            "name": "self",
                            "start": [
                                381,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Split text into lines (for multi-line text)",
                    "finish": [
                        399,
                        3
                    ],
                    "rawdesc": "Split text into lines (for multi-line text)",
                    "start": [
                        381,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_splitLines()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    381,
                    31
                ],
                "name": "_splitLines",
                "rawdesc": "Split text into lines (for multi-line text)",
                "start": [
                    381,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        28
                    ],
                    "start": [
                        22,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                28
                            ],
                            "start": [
                                22,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    22,
                    28
                ],
                "name": "_textBuffer",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        25,
                        28
                    ],
                    "start": [
                        25,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                25,
                                28
                            ],
                            "start": [
                                25,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    25,
                    28
                ],
                "name": "_textDirty",
                "start": [
                    25,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        51,
                        36
                    ],
                    "start": [
                        51,
                        28
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                51,
                                35
                            ],
                            "start": [
                                51,
                                28
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    51,
                    36
                ],
                "name": "_textDragOccurred",
                "start": [
                    51,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        37,
                        29
                    ],
                    "start": [
                        37,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                37,
                                29
                            ],
                            "start": [
                                37,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    37,
                    29
                ],
                "name": "_textScrollX",
                "start": [
                    37,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Update text if dirty (recalculate lines and wrapping)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                365,
                                8
                            ],
                            "name": "self",
                            "start": [
                                365,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Update text if dirty (recalculate lines and wrapping)",
                    "finish": [
                        374,
                        3
                    ],
                    "rawdesc": "Update text if dirty (recalculate lines and wrapping)",
                    "start": [
                        365,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_updateTextIfDirty()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    365,
                    38
                ],
                "name": "_updateTextIfDirty",
                "rawdesc": "Update text if dirty (recalculate lines and wrapping)",
                "start": [
                    365,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Update text scroll offset to keep cursor visible",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                618,
                                8
                            ],
                            "name": "self",
                            "start": [
                                618,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Update text scroll offset to keep cursor visible",
                    "finish": [
                        659,
                        3
                    ],
                    "rawdesc": "Update text scroll offset to keep cursor visible",
                    "start": [
                        618,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_updateTextScroll()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    618,
                    37
                ],
                "name": "_updateTextScroll",
                "rawdesc": "Update text scroll offset to keep cursor visible",
                "start": [
                    618,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        50,
                        22
                    ],
                    "start": [
                        50,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                50,
                                22
                            ],
                            "start": [
                                50,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    50,
                    22
                ],
                "name": "_utils",
                "start": [
                    50,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Validate cursor position (ensure it's within text bounds)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                597,
                                8
                            ],
                            "name": "self",
                            "start": [
                                597,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Validate cursor position (ensure it's within text bounds)",
                    "finish": [
                        601,
                        3
                    ],
                    "rawdesc": "Validate cursor position (ensure it's within text bounds)",
                    "start": [
                        597,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_validateCursorPosition()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    597,
                    43
                ],
                "name": "_validateCursorPosition",
                "rawdesc": "Validate cursor position (ensure it's within text bounds)",
                "start": [
                    597,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Wrap a single line of text\n\n@*param* `line` — Line to wrap\n\n@*param* `maxWidth` — Maximum width in pixels\n\n@*return* — Array of wrapped line parts",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                433,
                                8
                            ],
                            "name": "self",
                            "start": [
                                433,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Line to wrap",
                            "finish": [
                                433,
                                34
                            ],
                            "name": "line",
                            "rawdesc": "Line to wrap",
                            "start": [
                                433,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Maximum width in pixels",
                            "finish": [
                                433,
                                44
                            ],
                            "name": "maxWidth",
                            "rawdesc": "Maximum width in pixels",
                            "start": [
                                433,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Wrap a single line of text\n\n@*param* `line` — Line to wrap\n\n@*param* `maxWidth` — Maximum width in pixels\n\n@*return* — Array of wrapped line parts",
                    "finish": [
                        440,
                        3
                    ],
                    "rawdesc": "Wrap a single line of text",
                    "returns": [
                        {
                            "desc": "Array of wrapped line parts",
                            "rawdesc": "Array of wrapped line parts",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        433,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:_wrapLine(line: string, maxWidth: number)\n  -> table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    433,
                    29
                ],
                "name": "_wrapLine",
                "rawdesc": "Wrap a single line of text",
                "start": [
                    433,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        24,
                        30
                    ],
                    "start": [
                        24,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                24,
                                29
                            ],
                            "start": [
                                24,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    24,
                    30
                ],
                "name": "_wrappedLines",
                "start": [
                    24,
                    10
                ],
                "type": "doc.field",
                "view": "table?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        31
                    ],
                    "start": [
                        16,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                16,
                                31
                            ],
                            "start": [
                                16,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    16,
                    31
                ],
                "name": "allowNewlines",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        17,
                        27
                    ],
                    "start": [
                        17,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                27
                            ],
                            "start": [
                                17,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    17,
                    27
                ],
                "name": "allowTabs",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        13,
                        26
                    ],
                    "start": [
                        13,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                26
                            ],
                            "start": [
                                13,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    13,
                    26
                ],
                "name": "autoGrow",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Remove focus from this element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1053,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1053,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Remove focus from this element",
                    "finish": [
                        1065,
                        3
                    ],
                    "rawdesc": "Remove focus from this element",
                    "start": [
                        1053,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:blur()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1053,
                    24
                ],
                "name": "blur",
                "rawdesc": "Remove focus from this element",
                "start": [
                    1053,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Clear selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                809,
                                8
                            ],
                            "name": "self",
                            "start": [
                                809,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Clear selection",
                    "finish": [
                        813,
                        3
                    ],
                    "rawdesc": "Clear selection",
                    "start": [
                        809,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:clearSelection()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    809,
                    34
                ],
                "name": "clearSelection",
                "rawdesc": "Clear selection",
                "start": [
                    809,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        21,
                        32
                    ],
                    "start": [
                        21,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                32
                            ],
                            "start": [
                                21,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    21,
                    32
                ],
                "name": "cursorBlinkRate",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        19,
                        28
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        19,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                19,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                19,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    19,
                    28
                ],
                "name": "cursorColor",
                "rawdesc": " Utility class for color handling",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        35
                    ],
                    "start": [
                        18,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                34
                            ],
                            "start": [
                                18,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "function"
                        }
                    ],
                    "view": "function?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    18,
                    35
                ],
                "name": "customSanitizer",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "function?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Delete selected text\n\n@*return* — True if text was deleted",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                853,
                                8
                            ],
                            "name": "self",
                            "start": [
                                853,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Delete selected text\n\n@*return* — True if text was deleted",
                    "finish": [
                        870,
                        3
                    ],
                    "rawdesc": "Delete selected text",
                    "returns": [
                        {
                            "desc": "True if text was deleted",
                            "rawdesc": "True if text was deleted",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        853,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:deleteSelection()\n  -> boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    853,
                    35
                ],
                "name": "deleteSelection",
                "rawdesc": "Delete selected text",
                "start": [
                    853,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Delete text in range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                323,
                                8
                            ],
                            "name": "self",
                            "start": [
                                323,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Start position (inclusive)",
                            "finish": [
                                323,
                                39
                            ],
                            "name": "startPos",
                            "rawdesc": "Start position (inclusive)",
                            "start": [
                                323,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "End position (inclusive)",
                            "finish": [
                                323,
                                47
                            ],
                            "name": "endPos",
                            "rawdesc": "End position (inclusive)",
                            "start": [
                                323,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Delete text in range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                    "finish": [
                        348,
                        3
                    ],
                    "rawdesc": "Delete text in range",
                    "start": [
                        323,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:deleteText(startPos: number, endPos: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    323,
                    30
                ],
                "name": "deleteText",
                "rawdesc": "Delete text in range",
                "start": [
                    323,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        3,
                        26
                    ],
                    "start": [
                        3,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                26
                            ],
                            "start": [
                                3,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    3,
                    26
                ],
                "name": "editable",
                "start": [
                    3,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Focus this element for keyboard input",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1024,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1024,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Focus this element for keyboard input",
                    "finish": [
                        1050,
                        3
                    ],
                    "rawdesc": "Focus this element for keyboard input",
                    "start": [
                        1024,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:focus()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1024,
                    25
                ],
                "name": "focus",
                "rawdesc": "Focus this element for keyboard input",
                "start": [
                    1024,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get cursor position\n\n@*return* — Character index (0-based)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                456,
                                8
                            ],
                            "name": "self",
                            "start": [
                                456,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Get cursor position\n\n@*return* — Character index (0-based)",
                    "finish": [
                        458,
                        3
                    ],
                    "rawdesc": "Get cursor position",
                    "returns": [
                        {
                            "desc": "Character index (0-based)",
                            "rawdesc": "Character index (0-based)",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        456,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:getCursorPosition()\n  -> number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    456,
                    37
                ],
                "name": "getCursorPosition",
                "rawdesc": "Get cursor position",
                "start": [
                    456,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get selected text\n\n@*return* — Selected text or nil if no selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                825,
                                8
                            ],
                            "name": "self",
                            "start": [
                                825,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Get selected text\n\n@*return* — Selected text or nil if no selection",
                    "finish": [
                        849,
                        3
                    ],
                    "rawdesc": "Get selected text",
                    "returns": [
                        {
                            "desc": "Selected text or nil if no selection",
                            "rawdesc": "Selected text or nil if no selection",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        825,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:getSelectedText()\n  -> string?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    825,
                    35
                ],
                "name": "getSelectedText",
                "rawdesc": "Get selected text",
                "start": [
                    825,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get selection range\n\n@*return* — Start and end positions, or nil if no selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                795,
                                8
                            ],
                            "name": "self",
                            "start": [
                                795,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Get selection range\n\n@*return* — Start and end positions, or nil if no selection",
                    "finish": [
                        800,
                        3
                    ],
                    "rawdesc": "Get selection range",
                    "returns": [
                        {
                            "desc": "Start and end positions, or nil if no selection",
                            "rawdesc": "Start and end positions, or nil if no selection",
                            "type": "function.return",
                            "view": "number?"
                        },
                        {
                            "desc": "Start and end positions, or nil if no selection",
                            "rawdesc": "Start and end positions, or nil if no selection",
                            "type": "function.return",
                            "view": "number?"
                        }
                    ],
                    "start": [
                        795,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:getSelection()\n  -> number?\n  2. number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    795,
                    32
                ],
                "name": "getSelection",
                "rawdesc": "Get selection range",
                "start": [
                    795,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Get current text buffer",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                237,
                                8
                            ],
                            "name": "self",
                            "start": [
                                237,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Get current text buffer",
                    "finish": [
                        239,
                        3
                    ],
                    "rawdesc": "Get current text buffer",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        237,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:getText()\n  -> string"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    237,
                    27
                ],
                "name": "getText",
                "rawdesc": "Get current text buffer",
                "start": [
                    237,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Handle key press (special keys)\n\n@*param* `key` — Key name\n\n@*param* `scancode` — Scancode\n\n@*param* `isrepeat` — Whether this is a key repeat",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1114,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1114,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Key name",
                            "finish": [
                                1114,
                                38
                            ],
                            "name": "key",
                            "rawdesc": "Key name",
                            "start": [
                                1114,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Scancode",
                            "finish": [
                                1114,
                                48
                            ],
                            "name": "scancode",
                            "rawdesc": "Scancode",
                            "start": [
                                1114,
                                40
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Whether this is a key repeat",
                            "finish": [
                                1114,
                                58
                            ],
                            "name": "isrepeat",
                            "rawdesc": "Whether this is a key repeat",
                            "start": [
                                1114,
                                50
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "Handle key press (special keys)\n\n@*param* `key` — Key name\n\n@*param* `scancode` — Scancode\n\n@*param* `isrepeat` — Whether this is a key repeat",
                    "finish": [
                        1310,
                        3
                    ],
                    "rawdesc": "Handle key press (special keys)",
                    "start": [
                        1114,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:handleKeyPress(key: string, scancode: string, isrepeat: boolean)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1114,
                    34
                ],
                "name": "handleKeyPress",
                "rawdesc": "Handle key press (special keys)",
                "start": [
                    1114,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Handle mouse click on text\n\n@*param* `clickCount` — 1=single, 2=double, 3=triple",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1452,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1452,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "finish": [
                                1452,
                                42
                            ],
                            "name": "mouseX",
                            "start": [
                                1452,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1452,
                                50
                            ],
                            "name": "mouseY",
                            "start": [
                                1452,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "1=single, 2=double, 3=triple",
                            "finish": [
                                1452,
                                62
                            ],
                            "name": "clickCount",
                            "rawdesc": "1=single, 2=double, 3=triple",
                            "start": [
                                1452,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Handle mouse click on text\n\n@*param* `clickCount` — 1=single, 2=double, 3=triple",
                    "finish": [
                        1469,
                        3
                    ],
                    "rawdesc": "Handle mouse click on text",
                    "start": [
                        1452,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:handleTextClick(mouseX: number, mouseY: number, clickCount: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1452,
                    35
                ],
                "name": "handleTextClick",
                "rawdesc": "Handle mouse click on text",
                "start": [
                    1452,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Handle mouse drag for text selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1474,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1474,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "finish": [
                                1474,
                                41
                            ],
                            "name": "mouseX",
                            "start": [
                                1474,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1474,
                                49
                            ],
                            "name": "mouseY",
                            "start": [
                                1474,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Handle mouse drag for text selection",
                    "finish": [
                        1490,
                        3
                    ],
                    "rawdesc": "Handle mouse drag for text selection",
                    "start": [
                        1474,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:handleTextDrag(mouseX: number, mouseY: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1474,
                    34
                ],
                "name": "handleTextDrag",
                "rawdesc": "Handle mouse drag for text selection",
                "start": [
                    1474,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Handle text input (character insertion)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1079,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1079,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "finish": [
                                1079,
                                40
                            ],
                            "name": "text",
                            "start": [
                                1079,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "Handle text input (character insertion)",
                    "finish": [
                        1108,
                        3
                    ],
                    "rawdesc": "Handle text input (character insertion)",
                    "start": [
                        1079,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:handleTextInput(text: string)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1079,
                    35
                ],
                "name": "handleTextInput",
                "rawdesc": "Handle text input (character insertion)",
                "start": [
                    1079,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Check if there is an active selection",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                804,
                                8
                            ],
                            "name": "self",
                            "start": [
                                804,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Check if there is an active selection",
                    "finish": [
                        806,
                        3
                    ],
                    "rawdesc": "Check if there is an active selection",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        804,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:hasSelection()\n  -> boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    804,
                    32
                ],
                "name": "hasSelection",
                "rawdesc": "Check if there is an active selection",
                "start": [
                    804,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Initialize TextEditor with parent element reference\n\n@*param* `element` — The parent Element instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                192,
                                8
                            ],
                            "name": "self",
                            "start": [
                                192,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "The parent Element instance",
                            "finish": [
                                192,
                                38
                            ],
                            "name": "element",
                            "rawdesc": "The parent Element instance",
                            "start": [
                                192,
                                31
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "Initialize TextEditor with parent element reference\n\n@*param* `element` — The parent Element instance",
                    "finish": [
                        229,
                        3
                    ],
                    "rawdesc": "Initialize TextEditor with parent element reference",
                    "start": [
                        192,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:initialize(element: table)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    192,
                    30
                ],
                "name": "initialize",
                "rawdesc": "Initialize TextEditor with parent element reference",
                "start": [
                    192,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        10,
                        49
                    ],
                    "start": [
                        10,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                10,
                                26
                            ],
                            "start": [
                                10,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"text\""
                        },
                        {
                            "finish": [
                                10,
                                35
                            ],
                            "start": [
                                10,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"number\""
                        },
                        {
                            "finish": [
                                10,
                                43
                            ],
                            "start": [
                                10,
                                36
                            ],
                            "type": "doc.type.string",
                            "view": "\"email\""
                        },
                        {
                            "finish": [
                                10,
                                49
                            ],
                            "start": [
                                10,
                                44
                            ],
                            "type": "doc.type.string",
                            "view": "\"url\""
                        }
                    ],
                    "view": "\"email\"|\"number\"|\"text\"|\"url\""
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    10,
                    49
                ],
                "name": "inputType",
                "start": [
                    10,
                    10
                ],
                "type": "doc.field",
                "view": "\"email\"|\"number\"|\"text\"|\"url\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Insert text at position\n\n@*param* `text` — Text to insert\n\n@*param* `position` — Position to insert at (default: cursor position)\n\n@*param* `skipSanitization` — Skip sanitization (for internal use)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                263,
                                8
                            ],
                            "name": "self",
                            "start": [
                                263,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Text to insert",
                            "finish": [
                                263,
                                35
                            ],
                            "name": "text",
                            "rawdesc": "Text to insert",
                            "start": [
                                263,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Position to insert at (default: cursor position)",
                            "finish": [
                                263,
                                45
                            ],
                            "name": "position",
                            "rawdesc": "Position to insert at (default: cursor position)",
                            "start": [
                                263,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Skip sanitization (for internal use)",
                            "finish": [
                                263,
                                63
                            ],
                            "name": "skipSanitization",
                            "rawdesc": "Skip sanitization (for internal use)",
                            "start": [
                                263,
                                47
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "Insert text at position\n\n@*param* `text` — Text to insert\n\n@*param* `position` — Position to insert at (default: cursor position)\n\n@*param* `skipSanitization` — Skip sanitization (for internal use)",
                    "finish": [
                        318,
                        3
                    ],
                    "rawdesc": "Insert text at position",
                    "start": [
                        263,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:insertText(text: string, position?: number, skipSanitization?: boolean)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    263,
                    30
                ],
                "name": "insertText",
                "rawdesc": "Insert text at position",
                "start": [
                    263,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Check if this element is focused",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1069,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1069,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Check if this element is focused",
                    "finish": [
                        1071,
                        3
                    ],
                    "rawdesc": "Check if this element is focused",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1069,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:isFocused()\n  -> boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1069,
                    29
                ],
                "name": "isFocused",
                "rawdesc": "Check if this element is focused",
                "start": [
                    1069,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        8,
                        27
                    ],
                    "start": [
                        8,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                8,
                                26
                            ],
                            "start": [
                                8,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    8,
                    27
                ],
                "name": "maxLength",
                "start": [
                    8,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        7,
                        26
                    ],
                    "start": [
                        7,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                25
                            ],
                            "start": [
                                7,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    7,
                    26
                ],
                "name": "maxLines",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Convert mouse coordinates to cursor position in text\n\n@*param* `mouseX` — Mouse X coordinate (absolute)\n\n@*param* `mouseY` — Mouse Y coordinate (absolute)\n\n@*return* — Cursor position (character index)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1320,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1320,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Mouse X coordinate (absolute)",
                            "finish": [
                                1320,
                                46
                            ],
                            "name": "mouseX",
                            "rawdesc": "Mouse X coordinate (absolute)",
                            "start": [
                                1320,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Mouse Y coordinate (absolute)",
                            "finish": [
                                1320,
                                54
                            ],
                            "name": "mouseY",
                            "rawdesc": "Mouse Y coordinate (absolute)",
                            "start": [
                                1320,
                                48
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Convert mouse coordinates to cursor position in text\n\n@*param* `mouseX` — Mouse X coordinate (absolute)\n\n@*param* `mouseY` — Mouse Y coordinate (absolute)\n\n@*return* — Cursor position (character index)",
                    "finish": [
                        1446,
                        3
                    ],
                    "rawdesc": "Convert mouse coordinates to cursor position in text",
                    "returns": [
                        {
                            "desc": "Cursor position (character index)",
                            "rawdesc": "Cursor position (character index)",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1320,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:mouseToTextPosition(mouseX: number, mouseY: number)\n  -> number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1320,
                    39
                ],
                "name": "mouseToTextPosition",
                "rawdesc": "Convert mouse coordinates to cursor position in text",
                "start": [
                    1320,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor by delta characters\n\n@*param* `delta` — Number of characters to move (positive or negative)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                462,
                                8
                            ],
                            "name": "self",
                            "start": [
                                462,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Number of characters to move (positive or negative)",
                            "finish": [
                                462,
                                38
                            ],
                            "name": "delta",
                            "rawdesc": "Number of characters to move (positive or negative)",
                            "start": [
                                462,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Move cursor by delta characters\n\n@*param* `delta` — Number of characters to move (positive or negative)",
                    "finish": [
                        466,
                        3
                    ],
                    "rawdesc": "Move cursor by delta characters",
                    "start": [
                        462,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorBy(delta: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    462,
                    32
                ],
                "name": "moveCursorBy",
                "rawdesc": "Move cursor by delta characters",
                "start": [
                    462,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor to end of text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                475,
                                8
                            ],
                            "name": "self",
                            "start": [
                                475,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Move cursor to end of text",
                    "finish": [
                        479,
                        3
                    ],
                    "rawdesc": "Move cursor to end of text",
                    "start": [
                        475,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorToEnd()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    475,
                    35
                ],
                "name": "moveCursorToEnd",
                "rawdesc": "Move cursor to end of text",
                "start": [
                    475,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor to end of current line",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                488,
                                8
                            ],
                            "name": "self",
                            "start": [
                                488,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Move cursor to end of current line",
                    "finish": [
                        491,
                        3
                    ],
                    "rawdesc": "Move cursor to end of current line",
                    "start": [
                        488,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorToLineEnd()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    488,
                    39
                ],
                "name": "moveCursorToLineEnd",
                "rawdesc": "Move cursor to end of current line",
                "start": [
                    488,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor to start of current line",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                482,
                                8
                            ],
                            "name": "self",
                            "start": [
                                482,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Move cursor to start of current line",
                    "finish": [
                        485,
                        3
                    ],
                    "rawdesc": "Move cursor to start of current line",
                    "start": [
                        482,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorToLineStart()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    482,
                    41
                ],
                "name": "moveCursorToLineStart",
                "rawdesc": "Move cursor to start of current line",
                "start": [
                    482,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor to start of next word",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                545,
                                8
                            ],
                            "name": "self",
                            "start": [
                                545,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Move cursor to start of next word",
                    "finish": [
                        594,
                        3
                    ],
                    "rawdesc": "Move cursor to start of next word",
                    "start": [
                        545,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorToNextWord()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    545,
                    40
                ],
                "name": "moveCursorToNextWord",
                "rawdesc": "Move cursor to start of next word",
                "start": [
                    545,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor to start of previous word",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                494,
                                8
                            ],
                            "name": "self",
                            "start": [
                                494,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Move cursor to start of previous word",
                    "finish": [
                        542,
                        3
                    ],
                    "rawdesc": "Move cursor to start of previous word",
                    "start": [
                        494,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorToPreviousWord()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    494,
                    44
                ],
                "name": "moveCursorToPreviousWord",
                "rawdesc": "Move cursor to start of previous word",
                "start": [
                    494,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Move cursor to start of text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                469,
                                8
                            ],
                            "name": "self",
                            "start": [
                                469,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Move cursor to start of text",
                    "finish": [
                        472,
                        3
                    ],
                    "rawdesc": "Move cursor to start of text",
                    "start": [
                        469,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:moveCursorToStart()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    469,
                    37
                ],
                "name": "moveCursorToStart",
                "rawdesc": "Move cursor to start of text",
                "start": [
                    469,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        4,
                        27
                    ],
                    "start": [
                        4,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                27
                            ],
                            "start": [
                                4,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    4,
                    27
                ],
                "name": "multiline",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Create a new TextEditor instance\n\n@*param* `deps` — Dependencies {Context, StateManager, Color, utils}\n\n@*return* `TextEditor` — instance",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                80,
                                30
                            ],
                            "name": "config",
                            "start": [
                                80,
                                24
                            ],
                            "type": "local",
                            "view": "TextEditorConfig"
                        },
                        {
                            "desc": "Dependencies {Context, StateManager, Color, utils}",
                            "finish": [
                                80,
                                36
                            ],
                            "name": "deps",
                            "rawdesc": "Dependencies {Context, StateManager, Color, utils}",
                            "start": [
                                80,
                                32
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "Create a new TextEditor instance\n\n@*param* `deps` — Dependencies {Context, StateManager, Color, utils}\n\n@*return* `TextEditor` — instance",
                    "finish": [
                        158,
                        3
                    ],
                    "rawdesc": "Create a new TextEditor instance",
                    "returns": [
                        {
                            "desc": "instance",
                            "name": "TextEditor",
                            "rawdesc": "instance",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        80,
                        0
                    ],
                    "type": "function",
                    "view": "function TextEditor.new(config: TextEditorConfig, deps: table)\n  -> TextEditor: table"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    80,
                    23
                ],
                "name": "new",
                "rawdesc": "Create a new TextEditor instance",
                "start": [
                    80,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        39,
                        38
                    ],
                    "start": [
                        39,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        39,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            39,
                                            28
                                        ],
                                        "start": [
                                            39,
                                            21
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        39,
                                        21
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                39,
                                37
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                39,
                                17
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    39,
                    38
                ],
                "name": "onBlur",
                "start": [
                    39,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        42,
                        39
                    ],
                    "start": [
                        42,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        42,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            42,
                                            29
                                        ],
                                        "start": [
                                            42,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        42,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                42,
                                38
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                42,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    42,
                    39
                ],
                "name": "onEnter",
                "start": [
                    42,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        38,
                        39
                    ],
                    "start": [
                        38,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        38,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            38,
                                            29
                                        ],
                                        "start": [
                                            38,
                                            22
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        38,
                                        22
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                }
                            ],
                            "finish": [
                                38,
                                38
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                38,
                                18
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element)"
                        }
                    ],
                    "view": "fun(element: Element)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    38,
                    39
                ],
                "name": "onFocus",
                "start": [
                    38,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        43,
                        77
                    ],
                    "start": [
                        43,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        43,
                                        40
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            43,
                                            32
                                        ],
                                        "start": [
                                            43,
                                            25
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        43,
                                        25
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        43,
                                        57
                                    ],
                                    "name": {
                                        "[1]": "original",
                                        "finish": [
                                            43,
                                            50
                                        ],
                                        "start": [
                                            43,
                                            42
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "original"
                                    },
                                    "start": [
                                        43,
                                        42
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                },
                                {
                                    "finish": [
                                        43,
                                        75
                                    ],
                                    "name": {
                                        "[1]": "sanitized",
                                        "finish": [
                                            43,
                                            68
                                        ],
                                        "start": [
                                            43,
                                            59
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "sanitized"
                                    },
                                    "start": [
                                        43,
                                        59
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                43,
                                76
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                43,
                                21
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, original: string, sanitized: string)"
                        }
                    ],
                    "view": "fun(element: Element, original: string, sanitized: string)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    43,
                    77
                ],
                "name": "onSanitize",
                "start": [
                    43,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, original: string, sanitized: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        41,
                        57
                    ],
                    "start": [
                        41,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        41,
                                        42
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            41,
                                            34
                                        ],
                                        "start": [
                                            41,
                                            27
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        41,
                                        27
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        41,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "text",
                                        "finish": [
                                            41,
                                            48
                                        ],
                                        "start": [
                                            41,
                                            44
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "text"
                                    },
                                    "start": [
                                        41,
                                        44
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                41,
                                56
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                41,
                                23
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, text: string)"
                        }
                    ],
                    "view": "fun(element: Element, text: string)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    41,
                    57
                ],
                "name": "onTextChange",
                "start": [
                    41,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, text: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        40,
                        56
                    ],
                    "start": [
                        40,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        40,
                                        41
                                    ],
                                    "name": {
                                        "[1]": "element",
                                        "finish": [
                                            40,
                                            33
                                        ],
                                        "start": [
                                            40,
                                            26
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "element"
                                    },
                                    "start": [
                                        40,
                                        26
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "Element"
                                },
                                {
                                    "finish": [
                                        40,
                                        54
                                    ],
                                    "name": {
                                        "[1]": "text",
                                        "finish": [
                                            40,
                                            47
                                        ],
                                        "start": [
                                            40,
                                            43
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "text"
                                    },
                                    "start": [
                                        40,
                                        43
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "string"
                                }
                            ],
                            "finish": [
                                40,
                                55
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                40,
                                22
                            ],
                            "type": "doc.type.function",
                            "view": "fun(element: Element, text: string)"
                        }
                    ],
                    "view": "fun(element: Element, text: string)?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    40,
                    56
                ],
                "name": "onTextInput",
                "start": [
                    40,
                    10
                ],
                "type": "doc.field",
                "view": "fun(element: Element, text: string)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        5,
                        30
                    ],
                    "start": [
                        5,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                5,
                                30
                            ],
                            "start": [
                                5,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    5,
                    30
                ],
                "name": "passwordMode",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        9,
                        29
                    ],
                    "start": [
                        9,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                9,
                                28
                            ],
                            "start": [
                                9,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    9,
                    29
                ],
                "name": "placeholder",
                "start": [
                    9,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Replace text in range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)\n\n@*param* `newText` — Replacement text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                354,
                                8
                            ],
                            "name": "self",
                            "start": [
                                354,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Start position (inclusive)",
                            "finish": [
                                354,
                                40
                            ],
                            "name": "startPos",
                            "rawdesc": "Start position (inclusive)",
                            "start": [
                                354,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "End position (inclusive)",
                            "finish": [
                                354,
                                48
                            ],
                            "name": "endPos",
                            "rawdesc": "End position (inclusive)",
                            "start": [
                                354,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Replacement text",
                            "finish": [
                                354,
                                57
                            ],
                            "name": "newText",
                            "rawdesc": "Replacement text",
                            "start": [
                                354,
                                50
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "Replace text in range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)\n\n@*param* `newText` — Replacement text",
                    "finish": [
                        357,
                        3
                    ],
                    "rawdesc": "Replace text in range",
                    "start": [
                        354,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:replaceText(startPos: number, endPos: number, newText: string)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    354,
                    31
                ],
                "name": "replaceText",
                "rawdesc": "Replace text in range",
                "start": [
                    354,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        26
                    ],
                    "start": [
                        15,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                26
                            ],
                            "start": [
                                15,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    15,
                    26
                ],
                "name": "sanitize",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        12,
                        28
                    ],
                    "start": [
                        12,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                28
                            ],
                            "start": [
                                12,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    12,
                    28
                ],
                "name": "scrollable",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Select all text",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                816,
                                8
                            ],
                            "name": "self",
                            "start": [
                                816,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Select all text",
                    "finish": [
                        821,
                        3
                    ],
                    "rawdesc": "Select all text",
                    "start": [
                        816,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:selectAll()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    816,
                    29
                ],
                "name": "selectAll",
                "rawdesc": "Select all text",
                "start": [
                    816,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        14,
                        31
                    ],
                    "start": [
                        14,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                31
                            ],
                            "start": [
                                14,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    14,
                    31
                ],
                "name": "selectOnFocus",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Utility class for color handling",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        20,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        20,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                20,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                20,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    20,
                    31
                ],
                "name": "selectionColor",
                "rawdesc": " Utility class for color handling",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Set cursor position\n\n@*param* `position` — Character index (0-based)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                448,
                                8
                            ],
                            "name": "self",
                            "start": [
                                448,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Character index (0-based)",
                            "finish": [
                                448,
                                46
                            ],
                            "name": "position",
                            "rawdesc": "Character index (0-based)",
                            "start": [
                                448,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Set cursor position\n\n@*param* `position` — Character index (0-based)",
                    "finish": [
                        452,
                        3
                    ],
                    "rawdesc": "Set cursor position",
                    "start": [
                        448,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:setCursorPosition(position: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    448,
                    37
                ],
                "name": "setCursorPosition",
                "rawdesc": "Set cursor position",
                "start": [
                    448,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Set selection range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                780,
                                8
                            ],
                            "name": "self",
                            "start": [
                                780,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Start position (inclusive)",
                            "finish": [
                                780,
                                41
                            ],
                            "name": "startPos",
                            "rawdesc": "Start position (inclusive)",
                            "start": [
                                780,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "End position (inclusive)",
                            "finish": [
                                780,
                                49
                            ],
                            "name": "endPos",
                            "rawdesc": "End position (inclusive)",
                            "start": [
                                780,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Set selection range\n\n@*param* `startPos` — Start position (inclusive)\n\n@*param* `endPos` — End position (inclusive)",
                    "finish": [
                        791,
                        3
                    ],
                    "rawdesc": "Set selection range",
                    "start": [
                        780,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:setSelection(startPos: number, endPos: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    780,
                    32
                ],
                "name": "setSelection",
                "rawdesc": "Set selection range",
                "start": [
                    780,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Set text buffer and mark dirty\n\n@*param* `skipSanitization` — Skip sanitization (for trusted input)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                244,
                                8
                            ],
                            "name": "self",
                            "start": [
                                244,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "finish": [
                                244,
                                32
                            ],
                            "name": "text",
                            "start": [
                                244,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Skip sanitization (for trusted input)",
                            "finish": [
                                244,
                                50
                            ],
                            "name": "skipSanitization",
                            "rawdesc": "Skip sanitization (for trusted input)",
                            "start": [
                                244,
                                34
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "Set text buffer and mark dirty\n\n@*param* `skipSanitization` — Skip sanitization (for trusted input)",
                    "finish": [
                        257,
                        3
                    ],
                    "rawdesc": "Set text buffer and mark dirty",
                    "start": [
                        244,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:setText(text: string, skipSanitization?: boolean)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    244,
                    27
                ],
                "name": "setText",
                "rawdesc": "Set text buffer and mark dirty",
                "start": [
                    244,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        11,
                        49
                    ],
                    "start": [
                        11,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                29
                            ],
                            "start": [
                                11,
                                23
                            ],
                            "type": "doc.type.string",
                            "view": "\"clip\""
                        },
                        {
                            "finish": [
                                11,
                                40
                            ],
                            "start": [
                                11,
                                30
                            ],
                            "type": "doc.type.string",
                            "view": "\"ellipsis\""
                        },
                        {
                            "finish": [
                                11,
                                49
                            ],
                            "start": [
                                11,
                                41
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        }
                    ],
                    "view": "\"clip\"|\"ellipsis\"|\"scroll\""
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    11,
                    49
                ],
                "name": "textOverflow",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "\"clip\"|\"ellipsis\"|\"scroll\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        6,
                        40
                    ],
                    "start": [
                        6,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                26
                            ],
                            "start": [
                                6,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        },
                        {
                            "finish": [
                                6,
                                33
                            ],
                            "start": [
                                6,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"word\""
                        },
                        {
                            "finish": [
                                6,
                                40
                            ],
                            "start": [
                                6,
                                34
                            ],
                            "type": "doc.type.string",
                            "view": "\"char\""
                        }
                    ],
                    "view": "boolean|\"char\"|\"word\""
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    6,
                    40
                ],
                "name": "textWrap",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "boolean|\"char\"|\"word\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Update cursor blink animation\n\n@*param* `dt` — Delta time",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1554,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1554,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        },
                        {
                            "desc": "Delta time",
                            "finish": [
                                1554,
                                29
                            ],
                            "name": "dt",
                            "rawdesc": "Delta time",
                            "start": [
                                1554,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "Update cursor blink animation\n\n@*param* `dt` — Delta time",
                    "finish": [
                        1573,
                        3
                    ],
                    "rawdesc": "Update cursor blink animation",
                    "start": [
                        1554,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:update(dt: number)"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1554,
                    26
                ],
                "name": "update",
                "rawdesc": "Update cursor blink animation",
                "start": [
                    1554,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Update element height based on text content (for autoGrow)",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                1576,
                                8
                            ],
                            "name": "self",
                            "start": [
                                1576,
                                8
                            ],
                            "type": "self",
                            "view": "TextEditor"
                        }
                    ],
                    "desc": "Update element height based on text content (for autoGrow)",
                    "finish": [
                        1631,
                        3
                    ],
                    "rawdesc": "Update element height based on text content (for autoGrow)",
                    "start": [
                        1576,
                        0
                    ],
                    "type": "function",
                    "view": "(method) TextEditor:updateAutoGrowHeight()"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    1576,
                    40
                ],
                "name": "updateAutoGrowHeight",
                "rawdesc": "Update element height based on text content (for autoGrow)",
                "start": [
                    1576,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "TextEditor",
        "type": "type",
        "view": "TextEditor"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/TextEditor.lua",
                "finish": [
                    55,
                    26
                ],
                "start": [
                    55,
                    10
                ],
                "type": "doc.class",
                "view": "TextEditorConfig",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to allow newline characters (default: true in multiline)",
                "extends": {
                    "finish": [
                        69,
                        32
                    ],
                    "start": [
                        69,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                69,
                                31
                            ],
                            "start": [
                                69,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    69,
                    32
                ],
                "name": "allowNewlines",
                "rawdesc": "Whether to allow newline characters (default: true in multiline)",
                "start": [
                    69,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to allow tab characters (default: true)",
                "extends": {
                    "finish": [
                        70,
                        28
                    ],
                    "start": [
                        70,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                70,
                                27
                            ],
                            "start": [
                                70,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    70,
                    28
                ],
                "name": "allowTabs",
                "rawdesc": "Whether to allow tab characters (default: true)",
                "start": [
                    70,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether element auto-grows with text",
                "extends": {
                    "finish": [
                        66,
                        26
                    ],
                    "start": [
                        66,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                66,
                                26
                            ],
                            "start": [
                                66,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    66,
                    26
                ],
                "name": "autoGrow",
                "rawdesc": "Whether element auto-grows with text",
                "start": [
                    66,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Cursor blink rate in seconds",
                "extends": {
                    "finish": [
                        74,
                        32
                    ],
                    "start": [
                        74,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                74,
                                32
                            ],
                            "start": [
                                74,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    74,
                    32
                ],
                "name": "cursorBlinkRate",
                "rawdesc": "Cursor blink rate in seconds",
                "start": [
                    74,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Cursor color",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        72,
                        28
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        72,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                72,
                                27
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                72,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    72,
                    28
                ],
                "name": "cursorColor",
                "rawdesc": "Cursor color",
                "start": [
                    72,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Custom sanitization function",
                "extends": {
                    "finish": [
                        71,
                        35
                    ],
                    "start": [
                        71,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                71,
                                34
                            ],
                            "start": [
                                71,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "function"
                        }
                    ],
                    "view": "function?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    71,
                    35
                ],
                "name": "customSanitizer",
                "rawdesc": "Custom sanitization function",
                "start": [
                    71,
                    10
                ],
                "type": "doc.field",
                "view": "function?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether text is editable",
                "extends": {
                    "finish": [
                        56,
                        26
                    ],
                    "start": [
                        56,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                56,
                                26
                            ],
                            "start": [
                                56,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    56,
                    26
                ],
                "name": "editable",
                "rawdesc": "Whether text is editable",
                "start": [
                    56,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Input validation type",
                "extends": {
                    "finish": [
                        63,
                        49
                    ],
                    "start": [
                        63,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                63,
                                26
                            ],
                            "start": [
                                63,
                                20
                            ],
                            "type": "doc.type.string",
                            "view": "\"text\""
                        },
                        {
                            "finish": [
                                63,
                                35
                            ],
                            "start": [
                                63,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"number\""
                        },
                        {
                            "finish": [
                                63,
                                43
                            ],
                            "start": [
                                63,
                                36
                            ],
                            "type": "doc.type.string",
                            "view": "\"email\""
                        },
                        {
                            "finish": [
                                63,
                                49
                            ],
                            "start": [
                                63,
                                44
                            ],
                            "type": "doc.type.string",
                            "view": "\"url\""
                        }
                    ],
                    "view": "\"email\"|\"number\"|\"text\"|\"url\""
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    63,
                    49
                ],
                "name": "inputType",
                "rawdesc": "Input validation type",
                "start": [
                    63,
                    10
                ],
                "type": "doc.field",
                "view": "\"email\"|\"number\"|\"text\"|\"url\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum text length in characters",
                "extends": {
                    "finish": [
                        61,
                        27
                    ],
                    "start": [
                        61,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                61,
                                26
                            ],
                            "start": [
                                61,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    61,
                    27
                ],
                "name": "maxLength",
                "rawdesc": "Maximum text length in characters",
                "start": [
                    61,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Maximum number of lines",
                "extends": {
                    "finish": [
                        60,
                        26
                    ],
                    "start": [
                        60,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                60,
                                25
                            ],
                            "start": [
                                60,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    60,
                    26
                ],
                "name": "maxLines",
                "rawdesc": "Maximum number of lines",
                "start": [
                    60,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether multi-line is supported",
                "extends": {
                    "finish": [
                        57,
                        27
                    ],
                    "start": [
                        57,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                57,
                                27
                            ],
                            "start": [
                                57,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    57,
                    27
                ],
                "name": "multiline",
                "rawdesc": "Whether multi-line is supported",
                "start": [
                    57,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to mask text",
                "extends": {
                    "finish": [
                        58,
                        30
                    ],
                    "start": [
                        58,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                58,
                                30
                            ],
                            "start": [
                                58,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    58,
                    30
                ],
                "name": "passwordMode",
                "rawdesc": "Whether to mask text",
                "start": [
                    58,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Placeholder text when empty",
                "extends": {
                    "finish": [
                        62,
                        29
                    ],
                    "start": [
                        62,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                62,
                                28
                            ],
                            "start": [
                                62,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    62,
                    29
                ],
                "name": "placeholder",
                "rawdesc": "Placeholder text when empty",
                "start": [
                    62,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to sanitize text input (default: true)",
                "extends": {
                    "finish": [
                        68,
                        27
                    ],
                    "start": [
                        68,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                68,
                                26
                            ],
                            "start": [
                                68,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    68,
                    27
                ],
                "name": "sanitize",
                "rawdesc": "Whether to sanitize text input (default: true)",
                "start": [
                    68,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether text is scrollable",
                "extends": {
                    "finish": [
                        65,
                        28
                    ],
                    "start": [
                        65,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                65,
                                28
                            ],
                            "start": [
                                65,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    65,
                    28
                ],
                "name": "scrollable",
                "rawdesc": "Whether text is scrollable",
                "start": [
                    65,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Whether to select all text on focus",
                "extends": {
                    "finish": [
                        67,
                        31
                    ],
                    "start": [
                        67,
                        24
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                67,
                                31
                            ],
                            "start": [
                                67,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    67,
                    31
                ],
                "name": "selectOnFocus",
                "rawdesc": "Whether to select all text on focus",
                "start": [
                    67,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Selection background color",
                "extends": {
                    "desc": " Utility class for color handling",
                    "finish": [
                        73,
                        31
                    ],
                    "rawdesc": " Utility class for color handling",
                    "start": [
                        73,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": " Utility class for color handling",
                            "finish": [
                                73,
                                30
                            ],
                            "rawdesc": " Utility class for color handling",
                            "start": [
                                73,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "Color"
                        }
                    ],
                    "view": "Color?"
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    73,
                    31
                ],
                "name": "selectionColor",
                "rawdesc": "Selection background color",
                "start": [
                    73,
                    10
                ],
                "type": "doc.field",
                "view": "Color?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text overflow behavior",
                "extends": {
                    "finish": [
                        64,
                        49
                    ],
                    "start": [
                        64,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                64,
                                29
                            ],
                            "start": [
                                64,
                                23
                            ],
                            "type": "doc.type.string",
                            "view": "\"clip\""
                        },
                        {
                            "finish": [
                                64,
                                40
                            ],
                            "start": [
                                64,
                                30
                            ],
                            "type": "doc.type.string",
                            "view": "\"ellipsis\""
                        },
                        {
                            "finish": [
                                64,
                                49
                            ],
                            "start": [
                                64,
                                41
                            ],
                            "type": "doc.type.string",
                            "view": "\"scroll\""
                        }
                    ],
                    "view": "\"clip\"|\"ellipsis\"|\"scroll\""
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    64,
                    49
                ],
                "name": "textOverflow",
                "rawdesc": "Text overflow behavior",
                "start": [
                    64,
                    10
                ],
                "type": "doc.field",
                "view": "\"clip\"|\"ellipsis\"|\"scroll\"",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Text wrapping mode",
                "extends": {
                    "finish": [
                        59,
                        40
                    ],
                    "start": [
                        59,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                59,
                                26
                            ],
                            "start": [
                                59,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        },
                        {
                            "finish": [
                                59,
                                33
                            ],
                            "start": [
                                59,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"word\""
                        },
                        {
                            "finish": [
                                59,
                                40
                            ],
                            "start": [
                                59,
                                34
                            ],
                            "type": "doc.type.string",
                            "view": "\"char\""
                        }
                    ],
                    "view": "boolean|\"char\"|\"word\""
                },
                "file": "modules/TextEditor.lua",
                "finish": [
                    59,
                    40
                ],
                "name": "textWrap",
                "rawdesc": "Text wrapping mode",
                "start": [
                    59,
                    10
                ],
                "type": "doc.field",
                "view": "boolean|\"char\"|\"word\"",
                "visible": "public"
            }
        ],
        "name": "TextEditorConfig",
        "type": "type",
        "view": "TextEditorConfig"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Theme.lua",
                "finish": [
                    118,
                    15
                ],
                "start": [
                    118,
                    10
                ],
                "type": "doc.class",
                "view": "Theme",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Export both Theme and ThemeManager",
                "extends": {
                    "finish": [
                        663,
                        28
                    ],
                    "start": [
                        663,
                        16
                    ],
                    "type": "getlocal",
                    "view": "ThemeManager"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    663,
                    13
                ],
                "name": "Manager",
                "rawdesc": " Export both Theme and ThemeManager",
                "start": [
                    663,
                    0
                ],
                "type": "setfield",
                "view": "ThemeManager",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        127,
                        21
                    ],
                    "start": [
                        127,
                        16
                    ],
                    "type": "getlocal",
                    "view": "Theme"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    127,
                    13
                ],
                "name": "__index",
                "start": [
                    127,
                    0
                ],
                "type": "setfield",
                "view": "Theme",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: global atlas",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        120,
                        27
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        120,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                120,
                                26
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                120,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(love.Image)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    120,
                    27
                ],
                "name": "atlas",
                "rawdesc": "Optional: global atlas",
                "start": [
                    120,
                    10
                ],
                "type": "doc.field",
                "view": "(love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "extends": {
                    "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "finish": [
                        121,
                        35
                    ],
                    "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "start": [
                        121,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                121,
                                34
                            ],
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                121,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "love.ImageData"
                        }
                    ],
                    "view": "(love.ImageData)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    121,
                    35
                ],
                "name": "atlasData",
                "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "start": [
                    121,
                    10
                ],
                "type": "doc.field",
                "view": "(love.ImageData)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        123,
                        37
                    ],
                    "start": [
                        123,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                123,
                                37
                            ],
                            "start": [
                                123,
                                17
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, Color>"
                        }
                    ],
                    "view": "table<string, Color>"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    123,
                    37
                ],
                "name": "colors",
                "start": [
                    123,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, Color>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        122,
                        50
                    ],
                    "start": [
                        122,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                122,
                                50
                            ],
                            "start": [
                                122,
                                21
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, ThemeComponent>"
                        }
                    ],
                    "view": "table<string, ThemeComponent>"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    122,
                    50
                ],
                "name": "components",
                "start": [
                    122,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, ThemeComponent>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: default multiplier for auto-sized content dimensions",
                "extends": {
                    "finish": [
                        125,
                        70
                    ],
                    "start": [
                        125,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        125,
                                        52
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            125,
                                            44
                                        ],
                                        "start": [
                                            125,
                                            39
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        125,
                                        39
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        125,
                                        68
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            125,
                                            60
                                        ],
                                        "start": [
                                            125,
                                            54
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        125,
                                        54
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                125,
                                69
                            ],
                            "start": [
                                125,
                                38
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number?, height: number? }"
                        }
                    ],
                    "view": "{ width: number?, height: number? }?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    125,
                    70
                ],
                "name": "contentAutoSizingMultiplier",
                "rawdesc": "Optional: default multiplier for auto-sized content dimensions",
                "start": [
                    125,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number?, height: number? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Font family definitions",
                "extends": {
                    "finish": [
                        124,
                        37
                    ],
                    "start": [
                        124,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                124,
                                37
                            ],
                            "start": [
                                124,
                                16
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, string>"
                        }
                    ],
                    "view": "table<string, string>"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    124,
                    37
                ],
                "name": "fonts",
                "rawdesc": "Font family definitions",
                "start": [
                    124,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, string>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get a theme by name\n\n@*param* `themeName` — Name of the theme\n\n@*return* — Returns theme or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Name of the theme",
                            "finish": [
                                446,
                                28
                            ],
                            "name": "themeName",
                            "rawdesc": "Name of the theme",
                            "start": [
                                446,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get a theme by name\n\n@*param* `themeName` — Name of the theme\n\n@*return* — Returns theme or nil if not found",
                    "finish": [
                        448,
                        3
                    ],
                    "rawdesc": " Get a theme by name",
                    "returns": [
                        {
                            "desc": "Returns theme or nil if not found",
                            "rawdesc": "Returns theme or nil if not found",
                            "type": "function.return",
                            "view": "Theme|nil"
                        }
                    ],
                    "start": [
                        446,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.get(themeName: string)\n  -> Theme|nil"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    446,
                    18
                ],
                "name": "get",
                "rawdesc": " Get a theme by name",
                "start": [
                    446,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get the active theme",
                "extends": {
                    "args": [],
                    "desc": " Get the active theme",
                    "finish": [
                        344,
                        3
                    ],
                    "rawdesc": " Get the active theme",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Theme?"
                        }
                    ],
                    "start": [
                        342,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getActive()\n  -> Theme?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    342,
                    24
                ],
                "name": "getActive",
                "rawdesc": " Get the active theme",
                "start": [
                    342,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get all colors from the active theme\n\n@*return* — Table of all colors, or nil if no theme active",
                "extends": {
                    "args": [],
                    "desc": " Get all colors from the active theme\n\n@*return* — Table of all colors, or nil if no theme active",
                    "finish": [
                        428,
                        3
                    ],
                    "rawdesc": " Get all colors from the active theme",
                    "returns": [
                        {
                            "desc": "Table of all colors, or nil if no theme active",
                            "rawdesc": "Table of all colors, or nil if no theme active",
                            "type": "function.return",
                            "view": "table<string, Color>|nil"
                        }
                    ],
                    "start": [
                        422,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getAllColors()\n  -> table<string, Color>|nil"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    422,
                    27
                ],
                "name": "getAllColors",
                "rawdesc": " Get all colors from the active theme",
                "start": [
                    422,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get a color from the active theme\n\n@*param* `colorName` — Name of the color (e.g., \"primary\", \"secondary\")\n\n@*return* — Returns Color instance or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Name of the color (e.g., \"primary\", \"secondary\")",
                            "finish": [
                                382,
                                33
                            ],
                            "name": "colorName",
                            "rawdesc": "Name of the color (e.g., \"primary\", \"secondary\")",
                            "start": [
                                382,
                                24
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get a color from the active theme\n\n@*param* `colorName` — Name of the color (e.g., \"primary\", \"secondary\")\n\n@*return* — Returns Color instance or nil if not found",
                    "finish": [
                        388,
                        3
                    ],
                    "rawdesc": " Get a color from the active theme",
                    "returns": [
                        {
                            "desc": "Returns Color instance or nil if not found",
                            "rawdesc": "Returns Color instance or nil if not found",
                            "type": "function.return",
                            "view": "Color?"
                        }
                    ],
                    "start": [
                        382,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getColor(colorName: string)\n  -> Color?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    382,
                    23
                ],
                "name": "getColor",
                "rawdesc": " Get a color from the active theme",
                "start": [
                    382,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get all available color names from the active theme\n\n@*return* — Array of color names, or nil if no theme active",
                "extends": {
                    "args": [],
                    "desc": " Get all available color names from the active theme\n\n@*return* — Array of color names, or nil if no theme active",
                    "finish": [
                        418,
                        3
                    ],
                    "rawdesc": " Get all available color names from the active theme",
                    "returns": [
                        {
                            "desc": "Array of color names, or nil if no theme active",
                            "rawdesc": "Array of color names, or nil if no theme active",
                            "type": "function.return",
                            "view": "table<string>|nil"
                        }
                    ],
                    "start": [
                        408,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getColorNames()\n  -> table<string>|nil"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    408,
                    28
                ],
                "name": "getColorNames",
                "rawdesc": " Get all available color names from the active theme",
                "start": [
                    408,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get a color with a fallback if not found\n\n@*param* `colorName` — Name of the color to retrieve\n\n@*param* `fallback` — Fallback color if not found (default: white)\n\n@*return* — The color or fallback",
                "extends": {
                    "args": [
                        {
                            "desc": "Name of the color to retrieve",
                            "finish": [
                                434,
                                42
                            ],
                            "name": "colorName",
                            "rawdesc": "Name of the color to retrieve",
                            "start": [
                                434,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Fallback color if not found (default: white)",
                            "finish": [
                                434,
                                52
                            ],
                            "name": "fallback",
                            "rawdesc": "Fallback color if not found (default: white)",
                            "start": [
                                434,
                                44
                            ],
                            "type": "local",
                            "view": "Color|nil"
                        }
                    ],
                    "desc": " Get a color with a fallback if not found\n\n@*param* `colorName` — Name of the color to retrieve\n\n@*param* `fallback` — Fallback color if not found (default: white)\n\n@*return* — The color or fallback",
                    "finish": [
                        441,
                        3
                    ],
                    "rawdesc": " Get a color with a fallback if not found",
                    "returns": [
                        {
                            "desc": "The color or fallback",
                            "rawdesc": "The color or fallback",
                            "type": "function.return",
                            "view": "Color"
                        }
                    ],
                    "start": [
                        434,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getColorOrDefault(colorName: string, fallback: Color|nil)\n  -> Color"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    434,
                    32
                ],
                "name": "getColorOrDefault",
                "rawdesc": " Get a color with a fallback if not found",
                "start": [
                    434,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get a component from the active theme\n\n@*param* `componentName` — Name of the component (e.g., \"button\", \"panel\")\n\n@*param* `state` — Optional state (e.g., \"hover\", \"pressed\", \"disabled\")\n\n@*return* — Returns component or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Name of the component (e.g., \"button\", \"panel\")",
                            "finish": [
                                350,
                                41
                            ],
                            "name": "componentName",
                            "rawdesc": "Name of the component (e.g., \"button\", \"panel\")",
                            "start": [
                                350,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Optional state (e.g., \"hover\", \"pressed\", \"disabled\")",
                            "finish": [
                                350,
                                48
                            ],
                            "name": "state",
                            "rawdesc": "Optional state (e.g., \"hover\", \"pressed\", \"disabled\")",
                            "start": [
                                350,
                                43
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": " Get a component from the active theme\n\n@*param* `componentName` — Name of the component (e.g., \"button\", \"panel\")\n\n@*param* `state` — Optional state (e.g., \"hover\", \"pressed\", \"disabled\")\n\n@*return* — Returns component or nil if not found",
                    "finish": [
                        366,
                        3
                    ],
                    "rawdesc": " Get a component from the active theme",
                    "returns": [
                        {
                            "desc": "Returns component or nil if not found",
                            "rawdesc": "Returns component or nil if not found",
                            "type": "function.return",
                            "view": "ThemeComponent?"
                        }
                    ],
                    "start": [
                        350,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getComponent(componentName: string, state?: string)\n  -> ThemeComponent?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    350,
                    27
                ],
                "name": "getComponent",
                "rawdesc": " Get a component from the active theme",
                "start": [
                    350,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get a font from the active theme\n\n@*param* `fontName` — Name of the font family (e.g., \"default\", \"heading\")\n\n@*return* — Returns font path or nil if not found",
                "extends": {
                    "args": [
                        {
                            "desc": "Name of the font family (e.g., \"default\", \"heading\")",
                            "finish": [
                                371,
                                31
                            ],
                            "name": "fontName",
                            "rawdesc": "Name of the font family (e.g., \"default\", \"heading\")",
                            "start": [
                                371,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Get a font from the active theme\n\n@*param* `fontName` — Name of the font family (e.g., \"default\", \"heading\")\n\n@*return* — Returns font path or nil if not found",
                    "finish": [
                        377,
                        3
                    ],
                    "rawdesc": " Get a font from the active theme",
                    "returns": [
                        {
                            "desc": "Returns font path or nil if not found",
                            "rawdesc": "Returns font path or nil if not found",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        371,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getFont(fontName: string)\n  -> string?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    371,
                    22
                ],
                "name": "getFont",
                "rawdesc": " Get a font from the active theme",
                "start": [
                    371,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Get all registered theme names\n\n@*return* — Array of theme names",
                "extends": {
                    "args": [],
                    "desc": " Get all registered theme names\n\n@*return* — Array of theme names",
                    "finish": [
                        404,
                        3
                    ],
                    "rawdesc": " Get all registered theme names",
                    "returns": [
                        {
                            "desc": "Array of theme names",
                            "rawdesc": "Array of theme names",
                            "type": "function.return",
                            "view": "table<string>"
                        }
                    ],
                    "start": [
                        398,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.getRegisteredThemes()\n  -> table<string>"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    398,
                    34
                ],
                "name": "getRegisteredThemes",
                "rawdesc": " Get all registered theme names",
                "start": [
                    398,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Check if a theme is currently active\n\n@*return* — Returns true if a theme is active",
                "extends": {
                    "args": [],
                    "desc": " Check if a theme is currently active\n\n@*return* — Returns true if a theme is active",
                    "finish": [
                        394,
                        3
                    ],
                    "rawdesc": " Check if a theme is currently active",
                    "returns": [
                        {
                            "desc": "Returns true if a theme is active",
                            "rawdesc": "Returns true if a theme is active",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        392,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.hasActive()\n  -> boolean"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    392,
                    24
                ],
                "name": "hasActive",
                "rawdesc": " Check if a theme is currently active",
                "start": [
                    392,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Load a theme from a Lua file\n\n@*param* `path` — Path to theme definition file (e.g., \"space\" or \"mytheme\")",
                "extends": {
                    "args": [
                        {
                            "desc": "Path to theme definition file (e.g., \"space\" or \"mytheme\")",
                            "finish": [
                                296,
                                24
                            ],
                            "name": "path",
                            "rawdesc": "Path to theme definition file (e.g., \"space\" or \"mytheme\")",
                            "start": [
                                296,
                                20
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": " Load a theme from a Lua file\n\n@*param* `path` — Path to theme definition file (e.g., \"space\" or \"mytheme\")",
                    "finish": [
                        321,
                        3
                    ],
                    "rawdesc": " Load a theme from a Lua file",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Theme"
                        }
                    ],
                    "start": [
                        296,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.load(path: string)\n  -> Theme"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    296,
                    19
                ],
                "name": "load",
                "rawdesc": " Load a theme from a Lua file",
                "start": [
                    296,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        119,
                        21
                    ],
                    "start": [
                        119,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                119,
                                21
                            ],
                            "start": [
                                119,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    119,
                    21
                ],
                "name": "name",
                "start": [
                    119,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                133,
                                29
                            ],
                            "name": "definition",
                            "start": [
                                133,
                                19
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "finish": [
                        291,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "Theme"
                        }
                    ],
                    "start": [
                        133,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.new(definition: any)\n  -> Theme"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    133,
                    18
                ],
                "name": "new",
                "start": [
                    133,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Sanitize a theme definition by removing invalid values and providing defaults\n\n@*param* `theme` — The theme to sanitize\n\n@*return* `sanitized` — The sanitized theme",
                "extends": {
                    "args": [
                        {
                            "desc": "The theme to sanitize",
                            "finish": [
                                855,
                                34
                            ],
                            "name": "theme",
                            "rawdesc": "The theme to sanitize",
                            "start": [
                                855,
                                29
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "Sanitize a theme definition by removing invalid values and providing defaults\n\n@*param* `theme` — The theme to sanitize\n\n@*return* `sanitized` — The sanitized theme",
                    "finish": [
                        930,
                        3
                    ],
                    "rawdesc": "Sanitize a theme definition by removing invalid values and providing defaults",
                    "returns": [
                        {
                            "desc": "The sanitized theme",
                            "name": "sanitized",
                            "rawdesc": "The sanitized theme",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        855,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.sanitizeTheme(theme?: table)\n  -> sanitized: table"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    855,
                    28
                ],
                "name": "sanitizeTheme",
                "rawdesc": "Sanitize a theme definition by removing invalid values and providing defaults",
                "start": [
                    855,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                324,
                                36
                            ],
                            "name": "themeOrName",
                            "start": [
                                324,
                                25
                            ],
                            "type": "local",
                            "view": "string|Theme"
                        }
                    ],
                    "finish": [
                        338,
                        3
                    ],
                    "start": [
                        324,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.setActive(themeOrName: string|Theme)"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    324,
                    24
                ],
                "name": "setActive",
                "start": [
                    324,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Validate a theme definition for structural correctness (non-aggressive)\n\n@*param* `theme` — The theme to validate\n\n@*param* `options` — Optional validation options {strict: boolean}\n\n@*return* `valid,errors` — List of validation errors",
                "extends": {
                    "args": [
                        {
                            "desc": "The theme to validate",
                            "finish": [
                                669,
                                34
                            ],
                            "name": "theme",
                            "rawdesc": "The theme to validate",
                            "start": [
                                669,
                                29
                            ],
                            "type": "local",
                            "view": "table?"
                        },
                        {
                            "desc": "Optional validation options {strict: boolean}",
                            "finish": [
                                669,
                                43
                            ],
                            "name": "options",
                            "rawdesc": "Optional validation options {strict: boolean}",
                            "start": [
                                669,
                                36
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "Validate a theme definition for structural correctness (non-aggressive)\n\n@*param* `theme` — The theme to validate\n\n@*param* `options` — Optional validation options {strict: boolean}\n\n@*return* `valid,errors` — List of validation errors",
                    "finish": [
                        850,
                        3
                    ],
                    "rawdesc": "Validate a theme definition for structural correctness (non-aggressive)",
                    "returns": [
                        {
                            "desc": "List of validation errors",
                            "name": "valid",
                            "rawdesc": "List of validation errors",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "List of validation errors",
                            "name": "errors",
                            "rawdesc": "List of validation errors",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        669,
                        0
                    ],
                    "type": "function",
                    "view": "function Theme.validateTheme(theme?: table, options?: table)\n  -> valid: boolean\n  2. errors: table"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    669,
                    28
                ],
                "name": "validateTheme",
                "rawdesc": "Validate a theme definition for structural correctness (non-aggressive)",
                "start": [
                    669,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "Theme",
        "type": "type",
        "view": "Theme"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Theme.lua",
                "finish": [
                    92,
                    24
                ],
                "start": [
                    92,
                    10
                ],
                "type": "doc.class",
                "view": "ThemeComponent",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached loaded atlas image",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        101,
                        41
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        101,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                101,
                                29
                            ],
                            "start": [
                                101,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        },
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                101,
                                40
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                101,
                                30
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(string|love.Image)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    101,
                    41
                ],
                "name": "_loadedAtlas",
                "rawdesc": "Internal: cached loaded atlas image",
                "start": [
                    101,
                    10
                ],
                "type": "doc.field",
                "view": "(string|love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cached loaded atlas ImageData for pixel access",
                "extends": {
                    "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "finish": [
                        102,
                        42
                    ],
                    "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "start": [
                        102,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                102,
                                41
                            ],
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                102,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "love.ImageData"
                        }
                    ],
                    "view": "(love.ImageData)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    102,
                    42
                ],
                "name": "_loadedAtlasData",
                "rawdesc": "Internal: cached loaded atlas ImageData for pixel access",
                "start": [
                    102,
                    10
                ],
                "type": "doc.field",
                "view": "(love.ImageData)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: parsed 9-patch data with stretch regions and content padding",
                "extends": {
                    "finish": [
                        103,
                        94
                    ],
                    "start": [
                        103,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        103,
                                        38
                                    ],
                                    "name": {
                                        "[1]": "insets",
                                        "finish": [
                                            103,
                                            32
                                        ],
                                        "start": [
                                            103,
                                            26
                                        ],
                                        "type": "doc.field.name",
                                        "view": "insets"
                                    },
                                    "start": [
                                        103,
                                        26
                                    ],
                                    "type": "doc.type.field",
                                    "view": "table"
                                },
                                {
                                    "finish": [
                                        103,
                                        60
                                    ],
                                    "name": {
                                        "[1]": "contentPadding",
                                        "finish": [
                                            103,
                                            54
                                        ],
                                        "start": [
                                            103,
                                            40
                                        ],
                                        "type": "doc.field.name",
                                        "view": "contentPadding"
                                    },
                                    "start": [
                                        103,
                                        40
                                    ],
                                    "type": "doc.type.field",
                                    "view": "table"
                                },
                                {
                                    "finish": [
                                        103,
                                        76
                                    ],
                                    "name": {
                                        "[1]": "stretchX",
                                        "finish": [
                                            103,
                                            70
                                        ],
                                        "start": [
                                            103,
                                            62
                                        ],
                                        "type": "doc.field.name",
                                        "view": "stretchX"
                                    },
                                    "start": [
                                        103,
                                        62
                                    ],
                                    "type": "doc.type.field",
                                    "view": "table"
                                },
                                {
                                    "finish": [
                                        103,
                                        92
                                    ],
                                    "name": {
                                        "[1]": "stretchY",
                                        "finish": [
                                            103,
                                            86
                                        ],
                                        "start": [
                                            103,
                                            78
                                        ],
                                        "type": "doc.field.name",
                                        "view": "stretchY"
                                    },
                                    "start": [
                                        103,
                                        78
                                    ],
                                    "type": "doc.type.field",
                                    "view": "table"
                                }
                            ],
                            "finish": [
                                103,
                                93
                            ],
                            "start": [
                                103,
                                25
                            ],
                            "type": "doc.type.table",
                            "view": "{ insets: table, contentPadding: table, stretchX: table, stretchY: table }"
                        }
                    ],
                    "view": "{ insets: table, contentPadding: table, stretchX: table, stretchY: table }?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    103,
                    94
                ],
                "name": "_ninePatchData",
                "rawdesc": "Internal: parsed 9-patch data with stretch regions and content padding",
                "start": [
                    103,
                    10
                ],
                "type": "doc.field",
                "view": "{ insets: table, contentPadding: table, stretchX: table, stretchY: table }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Internal: cache for scaled corner/edge images",
                "extends": {
                    "finish": [
                        104,
                        55
                    ],
                    "start": [
                        104,
                        29
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                104,
                                54
                            ],
                            "start": [
                                104,
                                29
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, love.Image>"
                        }
                    ],
                    "view": "table<string, love.Image>?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    104,
                    55
                ],
                "name": "_scaledRegionCache",
                "rawdesc": "Internal: cache for scaled corner/edge images",
                "start": [
                    104,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, love.Image>?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: component-specific atlas (overrides theme atlas). Files ending in .9.png are auto-parsed",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        93,
                        34
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        93,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                93,
                                22
                            ],
                            "start": [
                                93,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        },
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                93,
                                33
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                93,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(string|love.Image)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    93,
                    34
                ],
                "name": "atlas",
                "rawdesc": "Optional: component-specific atlas (overrides theme atlas). Files ending in .9.png are auto-parsed",
                "start": [
                    93,
                    10
                ],
                "type": "doc.field",
                "view": "(string|love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: multiplier for auto-sized content dimensions",
                "extends": {
                    "finish": [
                        98,
                        70
                    ],
                    "start": [
                        98,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        98,
                                        52
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            98,
                                            44
                                        ],
                                        "start": [
                                            98,
                                            39
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        98,
                                        39
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        98,
                                        68
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            98,
                                            60
                                        ],
                                        "start": [
                                            98,
                                            54
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        98,
                                        54
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                98,
                                69
                            ],
                            "start": [
                                98,
                                38
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number?, height: number? }"
                        }
                    ],
                    "view": "{ width: number?, height: number? }?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    98,
                    70
                ],
                "name": "contentAutoSizingMultiplier",
                "rawdesc": "Optional: multiplier for auto-sized content dimensions",
                "start": [
                    98,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number?, height: number? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: 9-patch insets (auto-extracted from .9.png files or manually defined)",
                "extends": {
                    "finish": [
                        94,
                        72
                    ],
                    "start": [
                        94,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        94,
                                        29
                                    ],
                                    "name": {
                                        "[1]": "left",
                                        "finish": [
                                            94,
                                            22
                                        ],
                                        "start": [
                                            94,
                                            18
                                        ],
                                        "type": "doc.field.name",
                                        "view": "left"
                                    },
                                    "start": [
                                        94,
                                        18
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        94,
                                        41
                                    ],
                                    "name": {
                                        "[1]": "top",
                                        "finish": [
                                            94,
                                            34
                                        ],
                                        "start": [
                                            94,
                                            31
                                        ],
                                        "type": "doc.field.name",
                                        "view": "top"
                                    },
                                    "start": [
                                        94,
                                        31
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        94,
                                        55
                                    ],
                                    "name": {
                                        "[1]": "right",
                                        "finish": [
                                            94,
                                            48
                                        ],
                                        "start": [
                                            94,
                                            43
                                        ],
                                        "type": "doc.field.name",
                                        "view": "right"
                                    },
                                    "start": [
                                        94,
                                        43
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                },
                                {
                                    "finish": [
                                        94,
                                        70
                                    ],
                                    "name": {
                                        "[1]": "bottom",
                                        "finish": [
                                            94,
                                            63
                                        ],
                                        "start": [
                                            94,
                                            57
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottom"
                                    },
                                    "start": [
                                        94,
                                        57
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number"
                                }
                            ],
                            "finish": [
                                94,
                                71
                            ],
                            "start": [
                                94,
                                17
                            ],
                            "type": "doc.type.table",
                            "view": "{ left: number, top: number, right: number, bottom: number }"
                        }
                    ],
                    "view": "{ left: number, top: number, right: number, bottom: number }?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    94,
                    72
                ],
                "name": "insets",
                "rawdesc": "Optional: 9-patch insets (auto-extracted from .9.png files or manually defined)",
                "start": [
                    94,
                    10
                ],
                "type": "doc.field",
                "view": "{ left: number, top: number, right: number, bottom: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        95,
                        234
                    ],
                    "start": [
                        95,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        95,
                                        38
                                    ],
                                    "name": {
                                        "[1]": "topLeft",
                                        "finish": [
                                            95,
                                            26
                                        ],
                                        "start": [
                                            95,
                                            19
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topLeft"
                                    },
                                    "start": [
                                        95,
                                        19
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        61
                                    ],
                                    "name": {
                                        "[1]": "topCenter",
                                        "finish": [
                                            95,
                                            49
                                        ],
                                        "start": [
                                            95,
                                            40
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topCenter"
                                    },
                                    "start": [
                                        95,
                                        40
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        83
                                    ],
                                    "name": {
                                        "[1]": "topRight",
                                        "finish": [
                                            95,
                                            71
                                        ],
                                        "start": [
                                            95,
                                            63
                                        ],
                                        "type": "doc.field.name",
                                        "view": "topRight"
                                    },
                                    "start": [
                                        95,
                                        63
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        107
                                    ],
                                    "name": {
                                        "[1]": "middleLeft",
                                        "finish": [
                                            95,
                                            95
                                        ],
                                        "start": [
                                            95,
                                            85
                                        ],
                                        "type": "doc.field.name",
                                        "view": "middleLeft"
                                    },
                                    "start": [
                                        95,
                                        85
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        133
                                    ],
                                    "name": {
                                        "[1]": "middleCenter",
                                        "finish": [
                                            95,
                                            121
                                        ],
                                        "start": [
                                            95,
                                            109
                                        ],
                                        "type": "doc.field.name",
                                        "view": "middleCenter"
                                    },
                                    "start": [
                                        95,
                                        109
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        158
                                    ],
                                    "name": {
                                        "[1]": "middleRight",
                                        "finish": [
                                            95,
                                            146
                                        ],
                                        "start": [
                                            95,
                                            135
                                        ],
                                        "type": "doc.field.name",
                                        "view": "middleRight"
                                    },
                                    "start": [
                                        95,
                                        135
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        182
                                    ],
                                    "name": {
                                        "[1]": "bottomLeft",
                                        "finish": [
                                            95,
                                            170
                                        ],
                                        "start": [
                                            95,
                                            160
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomLeft"
                                    },
                                    "start": [
                                        95,
                                        160
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        208
                                    ],
                                    "name": {
                                        "[1]": "bottomCenter",
                                        "finish": [
                                            95,
                                            196
                                        ],
                                        "start": [
                                            95,
                                            184
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomCenter"
                                    },
                                    "start": [
                                        95,
                                        184
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                },
                                {
                                    "finish": [
                                        95,
                                        233
                                    ],
                                    "name": {
                                        "[1]": "bottomRight",
                                        "finish": [
                                            95,
                                            221
                                        ],
                                        "start": [
                                            95,
                                            210
                                        ],
                                        "type": "doc.field.name",
                                        "view": "bottomRight"
                                    },
                                    "start": [
                                        95,
                                        210
                                    ],
                                    "type": "doc.type.field",
                                    "view": "ThemeRegion"
                                }
                            ],
                            "finish": [
                                95,
                                234
                            ],
                            "start": [
                                95,
                                18
                            ],
                            "type": "doc.type.table",
                            "view": "{ topLeft: ThemeRegion, topCenter: ThemeRegion, topRight: ThemeRegion, middleLeft: ThemeRegion, middleCenter: ThemeRegion, middleRight: ThemeRegion, bottomLeft: ThemeRegion, bottomCenter: ThemeRegion, bottomRight: ThemeRegion }"
                        }
                    ],
                    "view": "{ topLeft: ThemeRegion, topCenter: ThemeRegion, topRight: ThemeRegion, middleLeft: ThemeRegion, middleCenter: ThemeRegion, middleRight: ThemeRegion, bottomLeft: ThemeRegion, bottomCenter: ThemeRegion, bottomRight: ThemeRegion }"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    95,
                    234
                ],
                "name": "regions",
                "start": [
                    95,
                    10
                ],
                "type": "doc.field",
                "view": "{ topLeft: ThemeRegion, topCenter: ThemeRegion, topRight: ThemeRegion, middleLeft: ThemeRegion, middleCenter: ThemeRegion, middleRight: ThemeRegion, bottomLeft: ThemeRegion, bottomCenter: ThemeRegion, bottomRight: ThemeRegion }",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: scale multiplier for non-stretched regions (corners/edges). E.g., 2 = 2x size. Default: nil (no scaling)",
                "extends": {
                    "finish": [
                        99,
                        30
                    ],
                    "start": [
                        99,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                99,
                                29
                            ],
                            "start": [
                                99,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    99,
                    30
                ],
                "name": "scaleCorners",
                "rawdesc": "Optional: scale multiplier for non-stretched regions (corners/edges). E.g., 2 = 2x size. Default: nil (no scaling)",
                "start": [
                    99,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: scaling algorithm for non-stretched regions. Default: \"bilinear\"",
                "extends": {
                    "finish": [
                        100,
                        48
                    ],
                    "start": [
                        100,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                100,
                                36
                            ],
                            "start": [
                                100,
                                27
                            ],
                            "type": "doc.type.string",
                            "view": "\"nearest\""
                        },
                        {
                            "finish": [
                                100,
                                47
                            ],
                            "start": [
                                100,
                                37
                            ],
                            "type": "doc.type.string",
                            "view": "\"bilinear\""
                        }
                    ],
                    "view": "(\"bilinear\"|\"nearest\")?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    100,
                    48
                ],
                "name": "scalingAlgorithm",
                "rawdesc": "Optional: scaling algorithm for non-stretched regions. Default: \"bilinear\"",
                "start": [
                    100,
                    10
                ],
                "type": "doc.field",
                "view": "(\"bilinear\"|\"nearest\")?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        97,
                        47
                    ],
                    "start": [
                        97,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                97,
                                46
                            ],
                            "start": [
                                97,
                                17
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, ThemeComponent>"
                        }
                    ],
                    "view": "table<string, ThemeComponent>?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    97,
                    47
                ],
                "name": "states",
                "start": [
                    97,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, ThemeComponent>?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        96,
                        86
                    ],
                    "start": [
                        96,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        96,
                                        52
                                    ],
                                    "name": {
                                        "[1]": "horizontal",
                                        "finish": [
                                            96,
                                            29
                                        ],
                                        "start": [
                                            96,
                                            19
                                        ],
                                        "type": "doc.field.name",
                                        "view": "horizontal"
                                    },
                                    "start": [
                                        96,
                                        19
                                    ],
                                    "type": "doc.type.field",
                                    "view": "table<integer, string>"
                                },
                                {
                                    "finish": [
                                        96,
                                        85
                                    ],
                                    "name": {
                                        "[1]": "vertical",
                                        "finish": [
                                            96,
                                            62
                                        ],
                                        "start": [
                                            96,
                                            54
                                        ],
                                        "type": "doc.field.name",
                                        "view": "vertical"
                                    },
                                    "start": [
                                        96,
                                        54
                                    ],
                                    "type": "doc.type.field",
                                    "view": "table<integer, string>"
                                }
                            ],
                            "finish": [
                                96,
                                86
                            ],
                            "start": [
                                96,
                                18
                            ],
                            "type": "doc.type.table",
                            "view": "{ horizontal: table<integer, string>, vertical: table<integer, string> }"
                        }
                    ],
                    "view": "{ horizontal: table<integer, string>, vertical: table<integer, string> }"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    96,
                    86
                ],
                "name": "stretch",
                "start": [
                    96,
                    10
                ],
                "type": "doc.field",
                "view": "{ horizontal: table<integer, string>, vertical: table<integer, string> }",
                "visible": "public"
            }
        ],
        "name": "ThemeComponent",
        "type": "type",
        "view": "ThemeComponent"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Theme.lua",
                "finish": [
                    110,
                    25
                ],
                "start": [
                    110,
                    10
                ],
                "type": "doc.class",
                "view": "ThemeDefinition",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: global atlas (can be overridden per component)",
                "extends": {
                    "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        112,
                        34
                    ],
                    "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        112,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                112,
                                22
                            ],
                            "start": [
                                112,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        },
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                112,
                                33
                            ],
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                112,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "love.Image"
                        }
                    ],
                    "view": "(string|love.Image)?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    112,
                    34
                ],
                "name": "atlas",
                "rawdesc": "Optional: global atlas (can be overridden per component)",
                "start": [
                    112,
                    10
                ],
                "type": "doc.field",
                "view": "(string|love.Image)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        114,
                        38
                    ],
                    "start": [
                        114,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                114,
                                37
                            ],
                            "start": [
                                114,
                                17
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, Color>"
                        }
                    ],
                    "view": "table<string, Color>?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    114,
                    38
                ],
                "name": "colors",
                "start": [
                    114,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, Color>?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        113,
                        50
                    ],
                    "start": [
                        113,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                113,
                                50
                            ],
                            "start": [
                                113,
                                21
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, ThemeComponent>"
                        }
                    ],
                    "view": "table<string, ThemeComponent>"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    113,
                    50
                ],
                "name": "components",
                "start": [
                    113,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, ThemeComponent>",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: default multiplier for auto-sized content dimensions",
                "extends": {
                    "finish": [
                        116,
                        70
                    ],
                    "start": [
                        116,
                        38
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        116,
                                        52
                                    ],
                                    "name": {
                                        "[1]": "width",
                                        "finish": [
                                            116,
                                            44
                                        ],
                                        "start": [
                                            116,
                                            39
                                        ],
                                        "type": "doc.field.name",
                                        "view": "width"
                                    },
                                    "start": [
                                        116,
                                        39
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        116,
                                        68
                                    ],
                                    "name": {
                                        "[1]": "height",
                                        "finish": [
                                            116,
                                            60
                                        ],
                                        "start": [
                                            116,
                                            54
                                        ],
                                        "type": "doc.field.name",
                                        "view": "height"
                                    },
                                    "start": [
                                        116,
                                        54
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                116,
                                69
                            ],
                            "start": [
                                116,
                                38
                            ],
                            "type": "doc.type.table",
                            "view": "{ width: number?, height: number? }"
                        }
                    ],
                    "view": "{ width: number?, height: number? }?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    116,
                    70
                ],
                "name": "contentAutoSizingMultiplier",
                "rawdesc": "Optional: default multiplier for auto-sized content dimensions",
                "start": [
                    116,
                    10
                ],
                "type": "doc.field",
                "view": "{ width: number?, height: number? }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Optional: font family definitions (name -> path)",
                "extends": {
                    "finish": [
                        115,
                        38
                    ],
                    "start": [
                        115,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                115,
                                37
                            ],
                            "start": [
                                115,
                                16
                            ],
                            "type": "doc.type.sign",
                            "view": "table<string, string>"
                        }
                    ],
                    "view": "table<string, string>?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    115,
                    38
                ],
                "name": "fonts",
                "rawdesc": "Optional: font family definitions (name -> path)",
                "start": [
                    115,
                    10
                ],
                "type": "doc.field",
                "view": "table<string, string>?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        111,
                        21
                    ],
                    "start": [
                        111,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                111,
                                21
                            ],
                            "start": [
                                111,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    111,
                    21
                ],
                "name": "name",
                "start": [
                    111,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            }
        ],
        "name": "ThemeDefinition",
        "type": "type",
        "view": "ThemeDefinition"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Theme.lua",
                "finish": [
                    454,
                    22
                ],
                "start": [
                    454,
                    10
                ],
                "type": "doc.class",
                "view": "ThemeManager",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        465,
                        35
                    ],
                    "start": [
                        465,
                        23
                    ],
                    "type": "getlocal",
                    "view": "ThemeManager"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    465,
                    20
                ],
                "name": "__index",
                "start": [
                    465,
                    0
                ],
                "type": "setfield",
                "view": "ThemeManager",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Reference to parent Element",
                "extends": {
                    "finish": [
                        463,
                        27
                    ],
                    "start": [
                        463,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                463,
                                26
                            ],
                            "start": [
                                463,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "Element"
                        }
                    ],
                    "view": "Element?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    463,
                    27
                ],
                "name": "_element",
                "rawdesc": "Reference to parent Element",
                "start": [
                    463,
                    10
                ],
                "type": "doc.field",
                "view": "Element?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Current theme state (normal, hover, pressed, active, disabled)",
                "extends": {
                    "finish": [
                        457,
                        28
                    ],
                    "start": [
                        457,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                457,
                                28
                            ],
                            "start": [
                                457,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    457,
                    28
                ],
                "name": "_themeState",
                "rawdesc": "Current theme state (normal, hover, pressed, active, disabled)",
                "start": [
                    457,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        459,
                        24
                    ],
                    "start": [
                        459,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                459,
                                24
                            ],
                            "start": [
                                459,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    459,
                    24
                ],
                "name": "active",
                "start": [
                    459,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "If true, disable pressed highlight overlay",
                "extends": {
                    "finish": [
                        460,
                        34
                    ],
                    "start": [
                        460,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                460,
                                34
                            ],
                            "start": [
                                460,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    460,
                    34
                ],
                "name": "disableHighlight",
                "rawdesc": "If true, disable pressed highlight overlay",
                "start": [
                    460,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        458,
                        26
                    ],
                    "start": [
                        458,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                458,
                                26
                            ],
                            "start": [
                                458,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    458,
                    26
                ],
                "name": "disabled",
                "start": [
                    458,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                537,
                                8
                            ],
                            "name": "self",
                            "start": [
                                537,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "finish": [
                        548,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table?"
                        }
                    ],
                    "start": [
                        537,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getComponent()\n  -> table?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    537,
                    34
                ],
                "name": "getComponent",
                "start": [
                    537,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                620,
                                8
                            ],
                            "name": "self",
                            "start": [
                                620,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "finish": [
                        644,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number?"
                        }
                    ],
                    "start": [
                        620,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getContentAutoSizingMultiplier()\n  -> number?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    620,
                    52
                ],
                "name": "getContentAutoSizingMultiplier",
                "start": [
                    620,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                647,
                                8
                            ],
                            "name": "self",
                            "start": [
                                647,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "finish": [
                        653,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        647,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getDefaultFontFamily()\n  -> string?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    647,
                    42
                ],
                "name": "getDefaultFontFamily",
                "start": [
                    647,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*return* — {left, top, right, bottom} or nil if no contentPadding",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                579,
                                8
                            ],
                            "name": "self",
                            "start": [
                                579,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        },
                        {
                            "finish": [
                                579,
                                60
                            ],
                            "name": "borderBoxWidth",
                            "start": [
                                579,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                579,
                                77
                            ],
                            "name": "borderBoxHeight",
                            "start": [
                                579,
                                62
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "@*return* — {left, top, right, bottom} or nil if no contentPadding",
                    "finish": [
                        617,
                        3
                    ],
                    "returns": [
                        {
                            "desc": "{left, top, right, bottom} or nil if no contentPadding",
                            "rawdesc": "{left, top, right, bottom} or nil if no contentPadding",
                            "type": "function.return",
                            "view": "table?"
                        }
                    ],
                    "start": [
                        579,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getScaledContentPadding(borderBoxWidth: number, borderBoxHeight: number)\n  -> table?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    579,
                    45
                ],
                "name": "getScaledContentPadding",
                "start": [
                    579,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*return* `The` — current theme state",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                514,
                                8
                            ],
                            "name": "self",
                            "start": [
                                514,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "desc": "@*return* `The` — current theme state",
                    "finish": [
                        516,
                        3
                    ],
                    "returns": [
                        {
                            "desc": "current theme state",
                            "name": "The",
                            "rawdesc": "current theme state",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        514,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getState()\n  -> The: string"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    514,
                    30
                ],
                "name": "getState",
                "start": [
                    514,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                551,
                                8
                            ],
                            "name": "self",
                            "start": [
                                551,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "finish": [
                        563,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table?"
                        }
                    ],
                    "start": [
                        551,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getStateComponent()\n  -> table?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    551,
                    39
                ],
                "name": "getStateComponent",
                "start": [
                    551,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                567,
                                8
                            ],
                            "name": "self",
                            "start": [
                                567,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        },
                        {
                            "finish": [
                                567,
                                39
                            ],
                            "name": "property",
                            "start": [
                                567,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "finish": [
                        574,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        567,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getStyle(property: string)\n  -> any"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    567,
                    30
                ],
                "name": "getStyle",
                "start": [
                    567,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                529,
                                8
                            ],
                            "name": "self",
                            "start": [
                                529,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "finish": [
                        534,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table?"
                        }
                    ],
                    "start": [
                        529,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:getTheme()\n  -> table?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    529,
                    30
                ],
                "name": "getTheme",
                "start": [
                    529,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                524,
                                8
                            ],
                            "name": "self",
                            "start": [
                                524,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        }
                    ],
                    "finish": [
                        526,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        524,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:hasThemeComponent()\n  -> boolean"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    524,
                    39
                ],
                "name": "hasThemeComponent",
                "start": [
                    524,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `element` — The parent Element",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                487,
                                8
                            ],
                            "name": "self",
                            "start": [
                                487,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        },
                        {
                            "desc": "The parent Element",
                            "finish": [
                                487,
                                40
                            ],
                            "name": "element",
                            "rawdesc": "The parent Element",
                            "start": [
                                487,
                                33
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "@*param* `element` — The parent Element",
                    "finish": [
                        489,
                        3
                    ],
                    "start": [
                        487,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:initialize(element: table)"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    487,
                    32
                ],
                "name": "initialize",
                "start": [
                    487,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `config` — Configuration options",
                "extends": {
                    "args": [
                        {
                            "desc": "Configuration options",
                            "finish": [
                                469,
                                32
                            ],
                            "name": "config",
                            "rawdesc": "Configuration options",
                            "start": [
                                469,
                                26
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "@*param* `config` — Configuration options",
                    "finish": [
                        484,
                        3
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "ThemeManager"
                        }
                    ],
                    "start": [
                        469,
                        0
                    ],
                    "type": "function",
                    "view": "function ThemeManager.new(config: table)\n  -> ThemeManager"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    469,
                    25
                ],
                "name": "new",
                "start": [
                    469,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Scale multiplier for 9-patch corners/edges",
                "extends": {
                    "finish": [
                        461,
                        30
                    ],
                    "start": [
                        461,
                        23
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                461,
                                29
                            ],
                            "start": [
                                461,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    461,
                    30
                ],
                "name": "scaleCorners",
                "rawdesc": "Scale multiplier for 9-patch corners/edges",
                "start": [
                    461,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\"nearest\" or \"bilinear\" scaling for 9-patch",
                "extends": {
                    "finish": [
                        462,
                        34
                    ],
                    "start": [
                        462,
                        27
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                462,
                                33
                            ],
                            "start": [
                                462,
                                27
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    462,
                    34
                ],
                "name": "scalingAlgorithm",
                "rawdesc": "\"nearest\" or \"bilinear\" scaling for 9-patch",
                "start": [
                    462,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `state` — The theme state to set",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                519,
                                8
                            ],
                            "name": "self",
                            "start": [
                                519,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        },
                        {
                            "desc": "The theme state to set",
                            "finish": [
                                519,
                                36
                            ],
                            "name": "state",
                            "rawdesc": "The theme state to set",
                            "start": [
                                519,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "@*param* `state` — The theme state to set",
                    "finish": [
                        521,
                        3
                    ],
                    "start": [
                        519,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:setState(state: string)"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    519,
                    30
                ],
                "name": "setState",
                "start": [
                    519,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `themeName` — The theme name\n\n@*param* `componentName` — The component name",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                657,
                                8
                            ],
                            "name": "self",
                            "start": [
                                657,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        },
                        {
                            "desc": "The theme name",
                            "finish": [
                                657,
                                40
                            ],
                            "name": "themeName",
                            "rawdesc": "The theme name",
                            "start": [
                                657,
                                31
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "desc": "The component name",
                            "finish": [
                                657,
                                55
                            ],
                            "name": "componentName",
                            "rawdesc": "The component name",
                            "start": [
                                657,
                                42
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "@*param* `themeName` — The theme name\n\n@*param* `componentName` — The component name",
                    "finish": [
                        660,
                        3
                    ],
                    "start": [
                        657,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:setTheme(themeName?: string, componentName?: string)"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    657,
                    30
                ],
                "name": "setTheme",
                "start": [
                    657,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Override theme name",
                "extends": {
                    "finish": [
                        455,
                        23
                    ],
                    "start": [
                        455,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                455,
                                22
                            ],
                            "start": [
                                455,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    455,
                    23
                ],
                "name": "theme",
                "rawdesc": "Override theme name",
                "start": [
                    455,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Component to use from theme",
                "extends": {
                    "finish": [
                        456,
                        32
                    ],
                    "start": [
                        456,
                        25
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                456,
                                31
                            ],
                            "start": [
                                456,
                                25
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    456,
                    32
                ],
                "name": "themeComponent",
                "rawdesc": "Component to use from theme",
                "start": [
                    456,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `isHovered` — Whether element is hovered\n\n@*param* `isPressed` — Whether element is pressed\n\n@*param* `isFocused` — Whether element is focused\n\n@*param* `isDisabled` — Whether element is disabled\n\n@*return* `The` — new theme state",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                496,
                                8
                            ],
                            "name": "self",
                            "start": [
                                496,
                                8
                            ],
                            "type": "self",
                            "view": "ThemeManager"
                        },
                        {
                            "desc": "Whether element is hovered",
                            "finish": [
                                496,
                                43
                            ],
                            "name": "isHovered",
                            "rawdesc": "Whether element is hovered",
                            "start": [
                                496,
                                34
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether element is pressed",
                            "finish": [
                                496,
                                54
                            ],
                            "name": "isPressed",
                            "rawdesc": "Whether element is pressed",
                            "start": [
                                496,
                                45
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether element is focused",
                            "finish": [
                                496,
                                65
                            ],
                            "name": "isFocused",
                            "rawdesc": "Whether element is focused",
                            "start": [
                                496,
                                56
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether element is disabled",
                            "finish": [
                                496,
                                77
                            ],
                            "name": "isDisabled",
                            "rawdesc": "Whether element is disabled",
                            "start": [
                                496,
                                67
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "@*param* `isHovered` — Whether element is hovered\n\n@*param* `isPressed` — Whether element is pressed\n\n@*param* `isFocused` — Whether element is focused\n\n@*param* `isDisabled` — Whether element is disabled\n\n@*return* `The` — new theme state",
                    "finish": [
                        511,
                        3
                    ],
                    "returns": [
                        {
                            "desc": "new theme state",
                            "name": "The",
                            "rawdesc": "new theme state",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        496,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ThemeManager:updateState(isHovered: boolean, isPressed: boolean, isFocused: boolean, isDisabled: boolean)\n  -> The: string"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    496,
                    33
                ],
                "name": "updateState",
                "start": [
                    496,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ThemeManager",
        "type": "type",
        "view": "ThemeManager"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/Theme.lua",
                "finish": [
                    86,
                    21
                ],
                "start": [
                    86,
                    10
                ],
                "type": "doc.class",
                "view": "ThemeRegion",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "Height in atlas",
                "extends": {
                    "finish": [
                        90,
                        18
                    ],
                    "start": [
                        90,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                90,
                                18
                            ],
                            "start": [
                                90,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    90,
                    18
                ],
                "name": "h",
                "rawdesc": "Height in atlas",
                "start": [
                    90,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Width in atlas",
                "extends": {
                    "finish": [
                        89,
                        18
                    ],
                    "start": [
                        89,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                89,
                                18
                            ],
                            "start": [
                                89,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    89,
                    18
                ],
                "name": "w",
                "rawdesc": "Width in atlas",
                "start": [
                    89,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "X position in atlas",
                "extends": {
                    "finish": [
                        87,
                        18
                    ],
                    "start": [
                        87,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                87,
                                18
                            ],
                            "start": [
                                87,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    87,
                    18
                ],
                "name": "x",
                "rawdesc": "X position in atlas",
                "start": [
                    87,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "Y position in atlas",
                "extends": {
                    "finish": [
                        88,
                        18
                    ],
                    "start": [
                        88,
                        12
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                88,
                                18
                            ],
                            "start": [
                                88,
                                12
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "modules/Theme.lua",
                "finish": [
                    88,
                    18
                ],
                "name": "y",
                "rawdesc": "Y position in atlas",
                "start": [
                    88,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            }
        ],
        "name": "ThemeRegion",
        "type": "type",
        "view": "ThemeRegion"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    2,
                    15
                ],
                "start": [
                    2,
                    10
                ],
                "type": "doc.class",
                "view": "Trace",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "Trace",
        "type": "type",
        "view": "Trace"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/types.lua",
                "finish": [
                    15,
                    24
                ],
                "start": [
                    15,
                    10
                ],
                "type": "doc.class",
                "view": "TransformProps",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        17,
                        24
                    ],
                    "start": [
                        17,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                23
                            ],
                            "start": [
                                17,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    17,
                    24
                ],
                "name": "rotate",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        39
                    ],
                    "start": [
                        16,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        16,
                                        26
                                    ],
                                    "name": {
                                        "[1]": "x",
                                        "finish": [
                                            16,
                                            18
                                        ],
                                        "start": [
                                            16,
                                            17
                                        ],
                                        "type": "doc.field.name",
                                        "view": "x"
                                    },
                                    "start": [
                                        16,
                                        17
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        16,
                                        37
                                    ],
                                    "name": {
                                        "[1]": "y",
                                        "finish": [
                                            16,
                                            29
                                        ],
                                        "start": [
                                            16,
                                            28
                                        ],
                                        "type": "doc.field.name",
                                        "view": "y"
                                    },
                                    "start": [
                                        16,
                                        28
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                16,
                                38
                            ],
                            "start": [
                                16,
                                16
                            ],
                            "type": "doc.type.table",
                            "view": "{ x: number, y: number }"
                        }
                    ],
                    "view": "{ x: number, y: number }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    16,
                    39
                ],
                "name": "scale",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "{ x: number, y: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        19,
                        38
                    ],
                    "start": [
                        19,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        19,
                                        25
                                    ],
                                    "name": {
                                        "[1]": "x",
                                        "finish": [
                                            19,
                                            17
                                        ],
                                        "start": [
                                            19,
                                            16
                                        ],
                                        "type": "doc.field.name",
                                        "view": "x"
                                    },
                                    "start": [
                                        19,
                                        16
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        19,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "y",
                                        "finish": [
                                            19,
                                            28
                                        ],
                                        "start": [
                                            19,
                                            27
                                        ],
                                        "type": "doc.field.name",
                                        "view": "y"
                                    },
                                    "start": [
                                        19,
                                        27
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                19,
                                37
                            ],
                            "start": [
                                19,
                                15
                            ],
                            "type": "doc.type.table",
                            "view": "{ x: number, y: number }"
                        }
                    ],
                    "view": "{ x: number, y: number }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    19,
                    38
                ],
                "name": "skew",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "{ x: number, y: number }?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        43
                    ],
                    "start": [
                        18,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "fields": [
                                {
                                    "finish": [
                                        18,
                                        30
                                    ],
                                    "name": {
                                        "[1]": "x",
                                        "finish": [
                                            18,
                                            22
                                        ],
                                        "start": [
                                            18,
                                            21
                                        ],
                                        "type": "doc.field.name",
                                        "view": "x"
                                    },
                                    "start": [
                                        18,
                                        21
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                },
                                {
                                    "finish": [
                                        18,
                                        41
                                    ],
                                    "name": {
                                        "[1]": "y",
                                        "finish": [
                                            18,
                                            33
                                        ],
                                        "start": [
                                            18,
                                            32
                                        ],
                                        "type": "doc.field.name",
                                        "view": "y"
                                    },
                                    "start": [
                                        18,
                                        32
                                    ],
                                    "type": "doc.type.field",
                                    "view": "number?"
                                }
                            ],
                            "finish": [
                                18,
                                42
                            ],
                            "start": [
                                18,
                                20
                            ],
                            "type": "doc.type.table",
                            "view": "{ x: number, y: number }"
                        }
                    ],
                    "view": "{ x: number, y: number }?"
                },
                "file": "modules/types.lua",
                "finish": [
                    18,
                    43
                ],
                "name": "translate",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "{ x: number, y: number }?",
                "visible": "public"
            }
        ],
        "name": "TransformProps",
        "type": "type",
        "view": "TransformProps"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "modules/types.lua",
                "finish": [
                    21,
                    25
                ],
                "start": [
                    21,
                    10
                ],
                "type": "doc.class",
                "view": "TransitionProps",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        26
                    ],
                    "start": [
                        22,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                25
                            ],
                            "start": [
                                22,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number?"
                },
                "file": "modules/types.lua",
                "finish": [
                    22,
                    26
                ],
                "name": "duration",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "number?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        23,
                        24
                    ],
                    "start": [
                        23,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                23,
                                23
                            ],
                            "start": [
                                23,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string?"
                },
                "file": "modules/types.lua",
                "finish": [
                    23,
                    24
                ],
                "name": "easing",
                "start": [
                    23,
                    10
                ],
                "type": "doc.field",
                "view": "string?",
                "visible": "public"
            }
        ],
        "name": "TransitionProps",
        "type": "type",
        "view": "TransitionProps"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA global variable (not a function) that holds the global environment (see [§2.2](command:extension.lua.doc?[\"en-us/51/manual.html/2.2\"])). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_G\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    69,
                    12
                ],
                "rawdesc": "\nA global variable (not a function) that holds the global environment (see [§2.2](command:extension.lua.doc?[\"en-us/51/manual.html/2.2\"])). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_G\"])\n",
                "start": [
                    69,
                    10
                ],
                "type": "doc.class",
                "view": "_G",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "_G",
        "type": "type",
        "view": "_G"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA global variable (not a function) that holds the global environment (see [§2.2](command:extension.lua.doc?[\"en-us/51/manual.html/2.2\"])). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_G\"])\n",
                "extends": {
                    "desc": "\nA global variable (not a function) that holds the global environment (see [§2.2](command:extension.lua.doc?[\"en-us/51/manual.html/2.2\"])). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_G\"])\n",
                    "finish": [
                        70,
                        7
                    ],
                    "rawdesc": "\nA global variable (not a function) that holds the global environment (see [§2.2](command:extension.lua.doc?[\"en-us/51/manual.html/2.2\"])). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_G\"])\n",
                    "start": [
                        70,
                        5
                    ],
                    "type": "table",
                    "view": "_G"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    70,
                    2
                ],
                "rawdesc": "\nA global variable (not a function) that holds the global environment (see [§2.2](command:extension.lua.doc?[\"en-us/51/manual.html/2.2\"])). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_G\"])\n",
                "start": [
                    70,
                    0
                ],
                "type": "setglobal",
                "view": "_G",
                "visible": "public"
            }
        ],
        "name": "_G",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA global variable (not a function) that holds a string containing the running Lua version.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_VERSION\"])\n",
                "extends": {
                    "finish": [
                        395,
                        20
                    ],
                    "start": [
                        395,
                        11
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    395,
                    8
                ],
                "rawdesc": "\nA global variable (not a function) that holds a string containing the running Lua version.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-_VERSION\"])\n",
                "start": [
                    395,
                    0
                ],
                "type": "setglobal",
                "view": "string",
                "visible": "public"
            }
        ],
        "name": "_VERSION",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    3,
                    13
                ],
                "start": [
                    3,
                    10
                ],
                "type": "doc.class",
                "view": "any",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "any",
        "type": "type",
        "view": "any"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCommand-line arguments of Lua Standalone.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-arg\"])\n",
                "extends": {
                    "finish": [
                        8,
                        8
                    ],
                    "start": [
                        8,
                        6
                    ],
                    "type": "table",
                    "view": "string[]"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    8,
                    3
                ],
                "rawdesc": "\nCommand-line arguments of Lua Standalone.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-arg\"])\n",
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "string[]",
                "visible": "public"
            }
        ],
        "name": "arg",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRaises an error if the value of its argument v is false (i.e., `nil` or `false`); otherwise, returns all its arguments. In case of error, `message` is the error object; when absent, it defaults to `\"assertion failed!\"`\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-assert\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                21,
                                17
                            ],
                            "name": "v",
                            "start": [
                                21,
                                16
                            ],
                            "type": "local",
                            "view": "<T>?"
                        },
                        {
                            "finish": [
                                21,
                                26
                            ],
                            "name": "message",
                            "start": [
                                21,
                                19
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                21,
                                31
                            ],
                            "start": [
                                21,
                                28
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nRaises an error if the value of its argument v is false (i.e., `nil` or `false`); otherwise, returns all its arguments. In case of error, `message` is the error object; when absent, it defaults to `\"assertion failed!\"`\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-assert\"])",
                    "finish": [
                        21,
                        36
                    ],
                    "rawdesc": "\nRaises an error if the value of its argument v is false (i.e., `nil` or `false`); otherwise, returns all its arguments. In case of error, `message` is the error object; when absent, it defaults to `\"assertion failed!\"`\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-assert\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T>"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function assert(v?: <T>, message?: any, ...any)\n  -> <T>\n  2. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    21,
                    15
                ],
                "rawdesc": "\nRaises an error if the value of its argument v is false (i.e., `nil` or `false`); otherwise, returns all its arguments. In case of error, `message` is the error object; when absent, it defaults to `\"assertion failed!\"`\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-assert\"])",
                "start": [
                    21,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "assert",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        4,
                        8
                    ],
                    "start": [
                        4,
                        6
                    ],
                    "type": "table",
                    "view": "bitlib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    4,
                    3
                ],
                "start": [
                    4,
                    0
                ],
                "type": "setglobal",
                "view": "bitlib",
                "visible": "public"
            }
        ],
        "name": "bit",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                56,
                                22
                            ],
                            "name": "x",
                            "start": [
                                56,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                56,
                                25
                            ],
                            "name": "n",
                            "start": [
                                56,
                                24
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        56,
                        30
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        56,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.arshift(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    56,
                    20
                ],
                "name": "arshift",
                "start": [
                    56,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.arshift",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                32,
                                19
                            ],
                            "name": "x",
                            "start": [
                                32,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                32,
                                24
                            ],
                            "start": [
                                32,
                                21
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        32,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.band(x: integer, ...integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    32,
                    17
                ],
                "name": "band",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.band",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                20,
                                19
                            ],
                            "name": "x",
                            "start": [
                                20,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        20,
                        24
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bnot(x: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    20,
                    17
                ],
                "name": "bnot",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.bnot",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                26,
                                18
                            ],
                            "name": "x",
                            "start": [
                                26,
                                17
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                26,
                                23
                            ],
                            "start": [
                                26,
                                20
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        26,
                        28
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bor(x: integer, ...integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    26,
                    16
                ],
                "name": "bor",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.bor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                73,
                                20
                            ],
                            "name": "x",
                            "start": [
                                73,
                                19
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        73,
                        25
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bswap(x: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    73,
                    18
                ],
                "name": "bswap",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.bswap",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                38,
                                19
                            ],
                            "name": "x",
                            "start": [
                                38,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                38,
                                24
                            ],
                            "start": [
                                38,
                                21
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        38,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        38,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bxor(x: integer, ...integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    38,
                    17
                ],
                "name": "bxor",
                "start": [
                    38,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.bxor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                44,
                                21
                            ],
                            "name": "x",
                            "start": [
                                44,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                44,
                                24
                            ],
                            "name": "n",
                            "start": [
                                44,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        44,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        44,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.lshift(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    44,
                    19
                ],
                "name": "lshift",
                "start": [
                    44,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.lshift",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                62,
                                18
                            ],
                            "name": "x",
                            "start": [
                                62,
                                17
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                62,
                                21
                            ],
                            "name": "n",
                            "start": [
                                62,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        62,
                        26
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        62,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.rol(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    62,
                    16
                ],
                "name": "rol",
                "start": [
                    62,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.rol",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                68,
                                18
                            ],
                            "name": "x",
                            "start": [
                                68,
                                17
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                68,
                                21
                            ],
                            "name": "n",
                            "start": [
                                68,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        68,
                        26
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.ror(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    68,
                    16
                ],
                "name": "ror",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.ror",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                50,
                                21
                            ],
                            "name": "x",
                            "start": [
                                50,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                50,
                                24
                            ],
                            "name": "n",
                            "start": [
                                50,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        50,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        50,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.rshift(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    50,
                    19
                ],
                "name": "rshift",
                "start": [
                    50,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.rshift",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                9,
                                20
                            ],
                            "name": "x",
                            "start": [
                                9,
                                19
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        9,
                        25
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        9,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.tobit(x: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    9,
                    18
                ],
                "name": "tobit",
                "start": [
                    9,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.tobit",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                15,
                                20
                            ],
                            "name": "x",
                            "start": [
                                15,
                                19
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                15,
                                23
                            ],
                            "name": "n",
                            "start": [
                                15,
                                22
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "finish": [
                        15,
                        28
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        15,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.tohex(x: integer, n?: integer)\n  -> y: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    15,
                    18
                ],
                "name": "tohex",
                "start": [
                    15,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bit.tohex",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    3,
                    16
                ],
                "start": [
                    3,
                    10
                ],
                "type": "doc.class",
                "view": "bitlib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                56,
                                22
                            ],
                            "name": "x",
                            "start": [
                                56,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                56,
                                25
                            ],
                            "name": "n",
                            "start": [
                                56,
                                24
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        56,
                        30
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        56,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.arshift(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    56,
                    20
                ],
                "name": "arshift",
                "start": [
                    56,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                32,
                                19
                            ],
                            "name": "x",
                            "start": [
                                32,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                32,
                                24
                            ],
                            "start": [
                                32,
                                21
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        32,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.band(x: integer, ...integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    32,
                    17
                ],
                "name": "band",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                20,
                                19
                            ],
                            "name": "x",
                            "start": [
                                20,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        20,
                        24
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bnot(x: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    20,
                    17
                ],
                "name": "bnot",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                26,
                                18
                            ],
                            "name": "x",
                            "start": [
                                26,
                                17
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                26,
                                23
                            ],
                            "start": [
                                26,
                                20
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        26,
                        28
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bor(x: integer, ...integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    26,
                    16
                ],
                "name": "bor",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                73,
                                20
                            ],
                            "name": "x",
                            "start": [
                                73,
                                19
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        73,
                        25
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bswap(x: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    73,
                    18
                ],
                "name": "bswap",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                38,
                                19
                            ],
                            "name": "x",
                            "start": [
                                38,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                38,
                                24
                            ],
                            "start": [
                                38,
                                21
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        38,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        38,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.bxor(x: integer, ...integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    38,
                    17
                ],
                "name": "bxor",
                "start": [
                    38,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                44,
                                21
                            ],
                            "name": "x",
                            "start": [
                                44,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                44,
                                24
                            ],
                            "name": "n",
                            "start": [
                                44,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        44,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        44,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.lshift(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    44,
                    19
                ],
                "name": "lshift",
                "start": [
                    44,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                62,
                                18
                            ],
                            "name": "x",
                            "start": [
                                62,
                                17
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                62,
                                21
                            ],
                            "name": "n",
                            "start": [
                                62,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        62,
                        26
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        62,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.rol(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    62,
                    16
                ],
                "name": "rol",
                "start": [
                    62,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                68,
                                18
                            ],
                            "name": "x",
                            "start": [
                                68,
                                17
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                68,
                                21
                            ],
                            "name": "n",
                            "start": [
                                68,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        68,
                        26
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.ror(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    68,
                    16
                ],
                "name": "ror",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                50,
                                21
                            ],
                            "name": "x",
                            "start": [
                                50,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                50,
                                24
                            ],
                            "name": "n",
                            "start": [
                                50,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        50,
                        29
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        50,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.rshift(x: integer, n: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    50,
                    19
                ],
                "name": "rshift",
                "start": [
                    50,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                9,
                                20
                            ],
                            "name": "x",
                            "start": [
                                9,
                                19
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        9,
                        25
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        9,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.tobit(x: integer)\n  -> y: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    9,
                    18
                ],
                "name": "tobit",
                "start": [
                    9,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                15,
                                20
                            ],
                            "name": "x",
                            "start": [
                                15,
                                19
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                15,
                                23
                            ],
                            "name": "n",
                            "start": [
                                15,
                                22
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "finish": [
                        15,
                        28
                    ],
                    "returns": [
                        {
                            "name": "y",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        15,
                        0
                    ],
                    "type": "function",
                    "view": "function bit.tohex(x: integer, n?: integer)\n  -> y: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/bit.lua",
                "finish": [
                    15,
                    18
                ],
                "name": "tohex",
                "start": [
                    15,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "bitlib",
        "type": "type",
        "view": "bitlib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    5,
                    17
                ],
                "start": [
                    5,
                    10
                ],
                "type": "doc.class",
                "view": "boolean",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "boolean",
        "type": "type",
        "view": "boolean"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis function is a generic interface to the garbage collector. It performs different functions according to its first argument, `opt`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-collectgarbage\"])\n\n\n```lua\nopt:\n   -> \"collect\" -- Performs a full garbage-collection cycle.\n    | \"stop\" -- Stops automatic execution.\n    | \"restart\" -- Restarts automatic execution.\n    | \"count\" -- Returns the total memory in Kbytes.\n    | \"step\" -- Performs a garbage-collection step.\n    | \"isrunning\" -- Returns whether the collector is running.\n    | \"setpause\" -- Set `pause`.\n    | \"setstepmul\" -- Set `step multiplier`.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                41,
                                27
                            ],
                            "name": "opt",
                            "start": [
                                41,
                                24
                            ],
                            "type": "local",
                            "view": "(\"collect\"|\"count\"|\"isrunning\"|\"restart\"|\"setpause\"...(+3))?"
                        },
                        {
                            "finish": [
                                41,
                                32
                            ],
                            "name": "arg",
                            "start": [
                                41,
                                29
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nThis function is a generic interface to the garbage collector. It performs different functions according to its first argument, `opt`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-collectgarbage\"])\n\n\n```lua\nopt:\n   -> \"collect\" -- Performs a full garbage-collection cycle.\n    | \"stop\" -- Stops automatic execution.\n    | \"restart\" -- Restarts automatic execution.\n    | \"count\" -- Returns the total memory in Kbytes.\n    | \"step\" -- Performs a garbage-collection step.\n    | \"isrunning\" -- Returns whether the collector is running.\n    | \"setpause\" -- Set `pause`.\n    | \"setstepmul\" -- Set `step multiplier`.\n```",
                    "finish": [
                        41,
                        37
                    ],
                    "rawdesc": "\nThis function is a generic interface to the garbage collector. It performs different functions according to its first argument, `opt`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-collectgarbage\"])\n\n\n```lua\nopt:\n   -> \"collect\" -- Performs a full garbage-collection cycle.\n    | \"stop\" -- Stops automatic execution.\n    | \"restart\" -- Restarts automatic execution.\n    | \"count\" -- Returns the total memory in Kbytes.\n    | \"step\" -- Performs a garbage-collection step.\n    | \"isrunning\" -- Returns whether the collector is running.\n    | \"setpause\" -- Set `pause`.\n    | \"setstepmul\" -- Set `step multiplier`.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function collectgarbage(opt?: \"collect\"|\"count\"|\"isrunning\"|\"restart\"|\"setpause\"...(+3), arg?: integer)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    41,
                    23
                ],
                "rawdesc": "\nThis function is a generic interface to the garbage collector. It performs different functions according to its first argument, `opt`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-collectgarbage\"])\n\n\n```lua\nopt:\n   -> \"collect\" -- Performs a full garbage-collection cycle.\n    | \"stop\" -- Stops automatic execution.\n    | \"restart\" -- Restarts automatic execution.\n    | \"count\" -- Returns the total memory in Kbytes.\n    | \"step\" -- Performs a garbage-collection step.\n    | \"isrunning\" -- Returns whether the collector is running.\n    | \"setpause\" -- Set `pause`.\n    | \"setstepmul\" -- Set `step multiplier`.\n```",
                "start": [
                    41,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "collectgarbage",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine\"])\n",
                    "finish": [
                        8,
                        14
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine\"])\n",
                    "start": [
                        8,
                        12
                    ],
                    "type": "table",
                    "view": "coroutinelib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    8,
                    9
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine\"])\n",
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "coroutinelib",
                "visible": "public"
            }
        ],
        "name": "coroutine",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                39,
                                27
                            ],
                            "name": "co",
                            "start": [
                                39,
                                25
                            ],
                            "type": "local",
                            "view": "thread"
                        }
                    ],
                    "desc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                    "finish": [
                        39,
                        32
                    ],
                    "rawdesc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                    "returns": [
                        {
                            "name": "noerror",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "errorobject",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        39,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.close(co: thread)\n  -> noerror: boolean\n  2. errorobject: any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    39,
                    24
                ],
                "name": "close",
                "rawdesc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                "start": [
                    39,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.close",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                18,
                                27
                            ],
                            "name": "f",
                            "start": [
                                18,
                                26
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        }
                    ],
                    "desc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                    "finish": [
                        18,
                        32
                    ],
                    "rawdesc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "thread"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.create(f: fun(...any):...unknown)\n  -> thread"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    18,
                    25
                ],
                "name": "create",
                "rawdesc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.create",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                    "finish": [
                        28,
                        36
                    ],
                    "rawdesc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        28,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.isyieldable()\n  -> boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    28,
                    30
                ],
                "name": "isyieldable",
                "rawdesc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                "start": [
                    28,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.isyieldable",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                50,
                                28
                            ],
                            "name": "co",
                            "start": [
                                50,
                                26
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                50,
                                34
                            ],
                            "name": "val1",
                            "start": [
                                50,
                                30
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                50,
                                39
                            ],
                            "start": [
                                50,
                                36
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                    "finish": [
                        50,
                        44
                    ],
                    "rawdesc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                    "returns": [
                        {
                            "name": "success",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        50,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.resume(co: thread, val1?: any, ...any)\n  -> success: boolean\n  2. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    50,
                    25
                ],
                "name": "resume",
                "rawdesc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                "start": [
                    50,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.resume",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                    "finish": [
                        60,
                        32
                    ],
                    "rawdesc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                    "returns": [
                        {
                            "name": "running",
                            "type": "function.return",
                            "view": "thread"
                        },
                        {
                            "name": "ismain",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        60,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.running()\n  -> running: thread\n  2. ismain: boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    60,
                    26
                ],
                "name": "running",
                "rawdesc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                "start": [
                    60,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.running",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                74,
                                28
                            ],
                            "name": "co",
                            "start": [
                                74,
                                26
                            ],
                            "type": "local",
                            "view": "thread"
                        }
                    ],
                    "desc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                    "finish": [
                        74,
                        33
                    ],
                    "rawdesc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"dead\"|\"normal\"|\"running\"|\"suspended\""
                        }
                    ],
                    "start": [
                        74,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.status(co: thread)\n  -> \"dead\"|\"normal\"|\"running\"|\"suspended\""
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    74,
                    25
                ],
                "name": "status",
                "rawdesc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                "start": [
                    74,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.status",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                84,
                                25
                            ],
                            "name": "f",
                            "start": [
                                84,
                                24
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        }
                    ],
                    "desc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                    "finish": [
                        84,
                        30
                    ],
                    "rawdesc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun(...any):...unknown"
                        }
                    ],
                    "start": [
                        84,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.wrap(f: fun(...any):...unknown)\n  -> fun(...any):...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    84,
                    23
                ],
                "name": "wrap",
                "rawdesc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                "start": [
                    84,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.wrap",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": true,
                "deprecated": false,
                "desc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                28
                            ],
                            "start": [
                                93,
                                25
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                    "finish": [
                        93,
                        33
                    ],
                    "rawdesc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "(async) function coroutine.yield(...any)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    93,
                    24
                ],
                "name": "yield",
                "rawdesc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutine.yield",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    7,
                    22
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "coroutinelib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                39,
                                27
                            ],
                            "name": "co",
                            "start": [
                                39,
                                25
                            ],
                            "type": "local",
                            "view": "thread"
                        }
                    ],
                    "desc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                    "finish": [
                        39,
                        32
                    ],
                    "rawdesc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                    "returns": [
                        {
                            "name": "noerror",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "errorobject",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        39,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.close(co: thread)\n  -> noerror: boolean\n  2. errorobject: any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    39,
                    24
                ],
                "name": "close",
                "rawdesc": "\nCloses coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.close\"])",
                "start": [
                    39,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                18,
                                27
                            ],
                            "name": "f",
                            "start": [
                                18,
                                26
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        }
                    ],
                    "desc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                    "finish": [
                        18,
                        32
                    ],
                    "rawdesc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "thread"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.create(f: fun(...any):...unknown)\n  -> thread"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    18,
                    25
                ],
                "name": "create",
                "rawdesc": "\nCreates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `\"thread\"`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.create\"])",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                    "finish": [
                        28,
                        36
                    ],
                    "rawdesc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        28,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.isyieldable()\n  -> boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    28,
                    30
                ],
                "name": "isyieldable",
                "rawdesc": "\nReturns true when the running coroutine can yield.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.isyieldable\"])",
                "start": [
                    28,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                50,
                                28
                            ],
                            "name": "co",
                            "start": [
                                50,
                                26
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                50,
                                34
                            ],
                            "name": "val1",
                            "start": [
                                50,
                                30
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                50,
                                39
                            ],
                            "start": [
                                50,
                                36
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                    "finish": [
                        50,
                        44
                    ],
                    "rawdesc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                    "returns": [
                        {
                            "name": "success",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        50,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.resume(co: thread, val1?: any, ...any)\n  -> success: boolean\n  2. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    50,
                    25
                ],
                "name": "resume",
                "rawdesc": "\nStarts or continues the execution of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.resume\"])",
                "start": [
                    50,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                    "finish": [
                        60,
                        32
                    ],
                    "rawdesc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                    "returns": [
                        {
                            "name": "running",
                            "type": "function.return",
                            "view": "thread"
                        },
                        {
                            "name": "ismain",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        60,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.running()\n  -> running: thread\n  2. ismain: boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    60,
                    26
                ],
                "name": "running",
                "rawdesc": "\nReturns the running coroutine plus a boolean, true when the running coroutine is the main one.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.running\"])",
                "start": [
                    60,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                74,
                                28
                            ],
                            "name": "co",
                            "start": [
                                74,
                                26
                            ],
                            "type": "local",
                            "view": "thread"
                        }
                    ],
                    "desc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                    "finish": [
                        74,
                        33
                    ],
                    "rawdesc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"dead\"|\"normal\"|\"running\"|\"suspended\""
                        }
                    ],
                    "start": [
                        74,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.status(co: thread)\n  -> \"dead\"|\"normal\"|\"running\"|\"suspended\""
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    74,
                    25
                ],
                "name": "status",
                "rawdesc": "\nReturns the status of coroutine `co`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.status\"])\n\n\n```lua\nreturn #1:\n    | \"running\" -- Is running.\n    | \"suspended\" -- Is suspended or not started.\n    | \"normal\" -- Is active but not running.\n    | \"dead\" -- Has finished or stopped with an error.\n```",
                "start": [
                    74,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                84,
                                25
                            ],
                            "name": "f",
                            "start": [
                                84,
                                24
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        }
                    ],
                    "desc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                    "finish": [
                        84,
                        30
                    ],
                    "rawdesc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun(...any):...unknown"
                        }
                    ],
                    "start": [
                        84,
                        0
                    ],
                    "type": "function",
                    "view": "function coroutine.wrap(f: fun(...any):...unknown)\n  -> fun(...any):...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    84,
                    23
                ],
                "name": "wrap",
                "rawdesc": "\nCreates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.wrap\"])",
                "start": [
                    84,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": true,
                "deprecated": false,
                "desc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                28
                            ],
                            "start": [
                                93,
                                25
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                    "finish": [
                        93,
                        33
                    ],
                    "rawdesc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "(async) function coroutine.yield(...any)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/coroutine.lua",
                "finish": [
                    93,
                    24
                ],
                "name": "yield",
                "rawdesc": "\nSuspends the execution of the calling coroutine.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-coroutine.yield\"])",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "coroutinelib",
        "type": "type",
        "view": "coroutinelib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug\"])\n",
                    "finish": [
                        8,
                        10
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug\"])\n",
                    "start": [
                        8,
                        8
                    ],
                    "type": "table",
                    "view": "debuglib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    8,
                    5
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug\"])\n",
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "debuglib",
                "visible": "public"
            }
        ],
        "name": "debug",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                "extends": {
                    "args": [],
                    "desc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                    "finish": [
                        31,
                        26
                    ],
                    "rawdesc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.debug()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    31,
                    20
                ],
                "name": "debug",
                "rawdesc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.debug",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                42,
                                24
                            ],
                            "name": "o",
                            "start": [
                                42,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                    "finish": [
                        42,
                        29
                    ],
                    "rawdesc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getfenv(o: any)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    42,
                    22
                ],
                "name": "getfenv",
                "rawdesc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getfenv",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                54,
                                25
                            ],
                            "name": "co",
                            "start": [
                                54,
                                23
                            ],
                            "type": "local",
                            "view": "thread?"
                        }
                    ],
                    "desc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                    "finish": [
                        54,
                        30
                    ],
                    "rawdesc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                    "returns": [
                        {
                            "name": "hook",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "name": "mask",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "count",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        54,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.gethook(co?: thread)\n  -> hook: function\n  2. mask: string\n  3. count: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    54,
                    22
                ],
                "name": "gethook",
                "rawdesc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                "start": [
                    54,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.gethook",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                76,
                                29
                            ],
                            "name": "thread",
                            "start": [
                                76,
                                23
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                76,
                                32
                            ],
                            "name": "f",
                            "start": [
                                76,
                                31
                            ],
                            "type": "local",
                            "view": "integer|fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                76,
                                38
                            ],
                            "name": "what",
                            "start": [
                                76,
                                34
                            ],
                            "type": "local",
                            "view": "(string|\"L\"|\"S\"|\"f\"|\"l\"...(+3))?"
                        }
                    ],
                    "desc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                    "finish": [
                        76,
                        43
                    ],
                    "rawdesc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "debuginfo"
                        }
                    ],
                    "start": [
                        76,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getinfo(thread: thread, f: integer|fun(...any):...unknown, what?: string|\"L\"|\"S\"|\"f\"|\"l\"...(+3))\n  -> debuginfo"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    76,
                    22
                ],
                "name": "getinfo",
                "rawdesc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                "start": [
                    76,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getinfo",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                90,
                                30
                            ],
                            "name": "thread",
                            "start": [
                                90,
                                24
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                90,
                                33
                            ],
                            "name": "f",
                            "start": [
                                90,
                                32
                            ],
                            "type": "local",
                            "view": "integer|fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                90,
                                40
                            ],
                            "name": "index",
                            "start": [
                                90,
                                35
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                    "finish": [
                        90,
                        45
                    ],
                    "rawdesc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "value",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getlocal(thread: thread, f: integer|fun(...any):...unknown, index: integer)\n  -> name: string\n  2. value: any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    90,
                    23
                ],
                "name": "getlocal",
                "rawdesc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                "start": [
                    90,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getlocal",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                100,
                                34
                            ],
                            "name": "object",
                            "start": [
                                100,
                                28
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                    "finish": [
                        100,
                        39
                    ],
                    "rawdesc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                    "returns": [
                        {
                            "name": "metatable",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        100,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getmetatable(object: any)\n  -> metatable: table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    100,
                    27
                ],
                "name": "getmetatable",
                "rawdesc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                "start": [
                    100,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getmetatable",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                    "finish": [
                        109,
                        32
                    ],
                    "rawdesc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getregistry()\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    109,
                    26
                ],
                "name": "getregistry",
                "rawdesc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getregistry",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                121,
                                27
                            ],
                            "name": "f",
                            "start": [
                                121,
                                26
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                121,
                                31
                            ],
                            "name": "up",
                            "start": [
                                121,
                                29
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                    "finish": [
                        121,
                        36
                    ],
                    "rawdesc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "value",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        121,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getupvalue(f: fun(...any):...unknown, up: integer)\n  -> name: string\n  2. value: any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    121,
                    25
                ],
                "name": "getupvalue",
                "rawdesc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                "start": [
                    121,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getupvalue",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                131,
                                29
                            ],
                            "name": "u",
                            "start": [
                                131,
                                28
                            ],
                            "type": "local",
                            "view": "userdata"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                    "finish": [
                        131,
                        34
                    ],
                    "rawdesc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getuservalue(u: userdata)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    131,
                    27
                ],
                "name": "getuservalue",
                "rawdesc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                "start": [
                    131,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.getuservalue",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                146,
                                35
                            ],
                            "name": "limit",
                            "start": [
                                146,
                                30
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                    "finish": [
                        146,
                        40
                    ],
                    "rawdesc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean|integer"
                        }
                    ],
                    "start": [
                        146,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setcstacklimit(limit: integer)\n  -> boolean|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    146,
                    29
                ],
                "name": "setcstacklimit",
                "rawdesc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                "start": [
                    146,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.setcstacklimit",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                158,
                                29
                            ],
                            "name": "object",
                            "start": [
                                158,
                                23
                            ],
                            "type": "local",
                            "view": "<T>"
                        },
                        {
                            "finish": [
                                158,
                                34
                            ],
                            "name": "env",
                            "start": [
                                158,
                                31
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                    "finish": [
                        158,
                        39
                    ],
                    "rawdesc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                    "returns": [
                        {
                            "name": "object",
                            "type": "function.return",
                            "view": "<T>"
                        }
                    ],
                    "start": [
                        158,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setfenv(object: <T>, env: table)\n  -> object: <T>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    158,
                    22
                ],
                "name": "setfenv",
                "rawdesc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                "start": [
                    158,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.setfenv",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                177,
                                29
                            ],
                            "name": "thread",
                            "start": [
                                177,
                                23
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                177,
                                35
                            ],
                            "name": "hook",
                            "start": [
                                177,
                                31
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                177,
                                41
                            ],
                            "name": "mask",
                            "start": [
                                177,
                                37
                            ],
                            "type": "local",
                            "view": "string|\"c\"|\"l\"|\"r\""
                        },
                        {
                            "finish": [
                                177,
                                48
                            ],
                            "name": "count",
                            "start": [
                                177,
                                43
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                    "finish": [
                        177,
                        53
                    ],
                    "rawdesc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                    "start": [
                        177,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.sethook(thread: thread, hook: fun(...any):...unknown, mask: string|\"c\"|\"l\"|\"r\", count?: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    177,
                    22
                ],
                "name": "sethook",
                "rawdesc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                "start": [
                    177,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.sethook",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                190,
                                30
                            ],
                            "name": "thread",
                            "start": [
                                190,
                                24
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                190,
                                37
                            ],
                            "name": "level",
                            "start": [
                                190,
                                32
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                190,
                                44
                            ],
                            "name": "index",
                            "start": [
                                190,
                                39
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                190,
                                51
                            ],
                            "name": "value",
                            "start": [
                                190,
                                46
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                    "finish": [
                        190,
                        56
                    ],
                    "rawdesc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        190,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setlocal(thread: thread, level: integer, index: integer, value: any)\n  -> name: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    190,
                    23
                ],
                "name": "setlocal",
                "rawdesc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                "start": [
                    190,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.setlocal",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                201,
                                33
                            ],
                            "name": "value",
                            "start": [
                                201,
                                28
                            ],
                            "type": "local",
                            "view": "<T>"
                        },
                        {
                            "finish": [
                                201,
                                39
                            ],
                            "name": "meta",
                            "start": [
                                201,
                                35
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                    "finish": [
                        201,
                        44
                    ],
                    "rawdesc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                    "returns": [
                        {
                            "name": "value",
                            "type": "function.return",
                            "view": "<T>"
                        }
                    ],
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setmetatable(value: <T>, meta?: table)\n  -> value: <T>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    201,
                    27
                ],
                "name": "setmetatable",
                "rawdesc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.setmetatable",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                212,
                                27
                            ],
                            "name": "f",
                            "start": [
                                212,
                                26
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                212,
                                31
                            ],
                            "name": "up",
                            "start": [
                                212,
                                29
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                212,
                                38
                            ],
                            "name": "value",
                            "start": [
                                212,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                    "finish": [
                        212,
                        43
                    ],
                    "rawdesc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        212,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setupvalue(f: fun(...any):...unknown, up: integer, value: any)\n  -> name: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    212,
                    25
                ],
                "name": "setupvalue",
                "rawdesc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                "start": [
                    212,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.setupvalue",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                222,
                                33
                            ],
                            "name": "udata",
                            "start": [
                                222,
                                28
                            ],
                            "type": "local",
                            "view": "userdata"
                        },
                        {
                            "finish": [
                                222,
                                40
                            ],
                            "name": "value",
                            "start": [
                                222,
                                35
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                    "finish": [
                        222,
                        45
                    ],
                    "rawdesc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                    "returns": [
                        {
                            "name": "udata",
                            "type": "function.return",
                            "view": "userdata"
                        }
                    ],
                    "start": [
                        222,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setuservalue(udata: userdata, value: any)\n  -> udata: userdata"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    222,
                    27
                ],
                "name": "setuservalue",
                "rawdesc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                "start": [
                    222,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.setuservalue",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                235,
                                31
                            ],
                            "name": "thread",
                            "start": [
                                235,
                                25
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                235,
                                40
                            ],
                            "name": "message",
                            "start": [
                                235,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                235,
                                47
                            ],
                            "name": "level",
                            "start": [
                                235,
                                42
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                    "finish": [
                        235,
                        52
                    ],
                    "rawdesc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                    "returns": [
                        {
                            "name": "message",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        235,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.traceback(thread: thread, message?: any, level?: integer)\n  -> message: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    235,
                    24
                ],
                "name": "traceback",
                "rawdesc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                "start": [
                    235,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.traceback",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                247,
                                26
                            ],
                            "name": "f",
                            "start": [
                                247,
                                25
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                247,
                                29
                            ],
                            "name": "n",
                            "start": [
                                247,
                                28
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                    "finish": [
                        247,
                        34
                    ],
                    "rawdesc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                    "returns": [
                        {
                            "name": "id",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        247,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.upvalueid(f: fun(...any):...unknown, n: integer)\n  -> id: lightuserdata"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    247,
                    24
                ],
                "name": "upvalueid",
                "rawdesc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                "start": [
                    247,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.upvalueid",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                259,
                                29
                            ],
                            "name": "f1",
                            "start": [
                                259,
                                27
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                259,
                                33
                            ],
                            "name": "n1",
                            "start": [
                                259,
                                31
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                259,
                                37
                            ],
                            "name": "f2",
                            "start": [
                                259,
                                35
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                259,
                                41
                            ],
                            "name": "n2",
                            "start": [
                                259,
                                39
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                    "finish": [
                        259,
                        46
                    ],
                    "rawdesc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.upvaluejoin(f1: fun(...any):...unknown, n1: integer, f2: fun(...any):...unknown, n2: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    259,
                    26
                ],
                "name": "upvaluejoin",
                "rawdesc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debug.upvaluejoin",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    10,
                    19
                ],
                "start": [
                    10,
                    10
                ],
                "type": "doc.class",
                "view": "debuginfo",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        24,
                        31
                    ],
                    "start": [
                        24,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                24,
                                31
                            ],
                            "start": [
                                24,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    24,
                    31
                ],
                "name": "activelines",
                "start": [
                    24,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        18,
                        33
                    ],
                    "start": [
                        18,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                18,
                                33
                            ],
                            "start": [
                                18,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        }
                    ],
                    "view": "integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    18,
                    33
                ],
                "name": "currentline",
                "start": [
                    18,
                    10
                ],
                "type": "doc.field",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        23,
                        34
                    ],
                    "start": [
                        23,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                23,
                                34
                            ],
                            "start": [
                                23,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "function"
                        }
                    ],
                    "view": "function"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    23,
                    34
                ],
                "name": "func",
                "start": [
                    23,
                    10
                ],
                "type": "doc.field",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        19,
                        33
                    ],
                    "start": [
                        19,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                19,
                                33
                            ],
                            "start": [
                                19,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    19,
                    33
                ],
                "name": "istailcall",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        33
                    ],
                    "start": [
                        22,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                33
                            ],
                            "start": [
                                22,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    22,
                    33
                ],
                "name": "isvararg",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        16,
                        33
                    ],
                    "start": [
                        16,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                16,
                                33
                            ],
                            "start": [
                                16,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        }
                    ],
                    "view": "integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    16,
                    33
                ],
                "name": "lastlinedefined",
                "start": [
                    16,
                    10
                ],
                "type": "doc.field",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        15,
                        33
                    ],
                    "start": [
                        15,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                15,
                                33
                            ],
                            "start": [
                                15,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        }
                    ],
                    "view": "integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    15,
                    33
                ],
                "name": "linedefined",
                "start": [
                    15,
                    10
                ],
                "type": "doc.field",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        11,
                        32
                    ],
                    "start": [
                        11,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                11,
                                32
                            ],
                            "start": [
                                11,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    11,
                    32
                ],
                "name": "name",
                "start": [
                    11,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        12,
                        32
                    ],
                    "start": [
                        12,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                12,
                                32
                            ],
                            "start": [
                                12,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    12,
                    32
                ],
                "name": "namewhat",
                "start": [
                    12,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        21,
                        33
                    ],
                    "start": [
                        21,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                33
                            ],
                            "start": [
                                21,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        }
                    ],
                    "view": "integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    21,
                    33
                ],
                "name": "nparams",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        20,
                        33
                    ],
                    "start": [
                        20,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                20,
                                33
                            ],
                            "start": [
                                20,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        }
                    ],
                    "view": "integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    20,
                    33
                ],
                "name": "nups",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        14,
                        32
                    ],
                    "start": [
                        14,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                14,
                                32
                            ],
                            "start": [
                                14,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    14,
                    32
                ],
                "name": "short_src",
                "start": [
                    14,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        13,
                        32
                    ],
                    "start": [
                        13,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                32
                            ],
                            "start": [
                                13,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    13,
                    32
                ],
                "name": "source",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        17,
                        32
                    ],
                    "start": [
                        17,
                        26
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                17,
                                32
                            ],
                            "start": [
                                17,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    17,
                    32
                ],
                "name": "what",
                "start": [
                    17,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            }
        ],
        "name": "debuginfo",
        "type": "type",
        "view": "debuginfo"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    7,
                    18
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "debuglib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                "extends": {
                    "args": [],
                    "desc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                    "finish": [
                        31,
                        26
                    ],
                    "rawdesc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.debug()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    31,
                    20
                ],
                "name": "debug",
                "rawdesc": "\nEnters an interactive mode with the user, running each string that the user enters.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.debug\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                42,
                                24
                            ],
                            "name": "o",
                            "start": [
                                42,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                    "finish": [
                        42,
                        29
                    ],
                    "rawdesc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getfenv(o: any)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    42,
                    22
                ],
                "name": "getfenv",
                "rawdesc": "\nReturns the environment of object `o` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getfenv\"])",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                54,
                                25
                            ],
                            "name": "co",
                            "start": [
                                54,
                                23
                            ],
                            "type": "local",
                            "view": "thread?"
                        }
                    ],
                    "desc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                    "finish": [
                        54,
                        30
                    ],
                    "rawdesc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                    "returns": [
                        {
                            "name": "hook",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "name": "mask",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "count",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        54,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.gethook(co?: thread)\n  -> hook: function\n  2. mask: string\n  3. count: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    54,
                    22
                ],
                "name": "gethook",
                "rawdesc": "\nReturns the current hook settings of the thread.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.gethook\"])",
                "start": [
                    54,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                76,
                                29
                            ],
                            "name": "thread",
                            "start": [
                                76,
                                23
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                76,
                                32
                            ],
                            "name": "f",
                            "start": [
                                76,
                                31
                            ],
                            "type": "local",
                            "view": "integer|fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                76,
                                38
                            ],
                            "name": "what",
                            "start": [
                                76,
                                34
                            ],
                            "type": "local",
                            "view": "(string|\"L\"|\"S\"|\"f\"|\"l\"...(+3))?"
                        }
                    ],
                    "desc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                    "finish": [
                        76,
                        43
                    ],
                    "rawdesc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "debuginfo"
                        }
                    ],
                    "start": [
                        76,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getinfo(thread: thread, f: integer|fun(...any):...unknown, what?: string|\"L\"|\"S\"|\"f\"|\"l\"...(+3))\n  -> debuginfo"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    76,
                    22
                ],
                "name": "getinfo",
                "rawdesc": "\nReturns a table with information about a function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getinfo\"])\n\n\n---\n\n```lua\nwhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                "start": [
                    76,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                90,
                                30
                            ],
                            "name": "thread",
                            "start": [
                                90,
                                24
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                90,
                                33
                            ],
                            "name": "f",
                            "start": [
                                90,
                                32
                            ],
                            "type": "local",
                            "view": "integer|fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                90,
                                40
                            ],
                            "name": "index",
                            "start": [
                                90,
                                35
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                    "finish": [
                        90,
                        45
                    ],
                    "rawdesc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "value",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getlocal(thread: thread, f: integer|fun(...any):...unknown, index: integer)\n  -> name: string\n  2. value: any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    90,
                    23
                ],
                "name": "getlocal",
                "rawdesc": "\nReturns the name and the value of the local variable with index `local` of the function at level `f` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getlocal\"])",
                "start": [
                    90,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                100,
                                34
                            ],
                            "name": "object",
                            "start": [
                                100,
                                28
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                    "finish": [
                        100,
                        39
                    ],
                    "rawdesc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                    "returns": [
                        {
                            "name": "metatable",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        100,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getmetatable(object: any)\n  -> metatable: table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    100,
                    27
                ],
                "name": "getmetatable",
                "rawdesc": "\nReturns the metatable of the given value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getmetatable\"])",
                "start": [
                    100,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                    "finish": [
                        109,
                        32
                    ],
                    "rawdesc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getregistry()\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    109,
                    26
                ],
                "name": "getregistry",
                "rawdesc": "\nReturns the registry table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getregistry\"])",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                121,
                                27
                            ],
                            "name": "f",
                            "start": [
                                121,
                                26
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                121,
                                31
                            ],
                            "name": "up",
                            "start": [
                                121,
                                29
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                    "finish": [
                        121,
                        36
                    ],
                    "rawdesc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "value",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        121,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getupvalue(f: fun(...any):...unknown, up: integer)\n  -> name: string\n  2. value: any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    121,
                    25
                ],
                "name": "getupvalue",
                "rawdesc": "\nReturns the name and the value of the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getupvalue\"])",
                "start": [
                    121,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                131,
                                29
                            ],
                            "name": "u",
                            "start": [
                                131,
                                28
                            ],
                            "type": "local",
                            "view": "userdata"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                    "finish": [
                        131,
                        34
                    ],
                    "rawdesc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.getuservalue(u: userdata)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    131,
                    27
                ],
                "name": "getuservalue",
                "rawdesc": "\nReturns the Lua value associated to u.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.getuservalue\"])",
                "start": [
                    131,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                146,
                                35
                            ],
                            "name": "limit",
                            "start": [
                                146,
                                30
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                    "finish": [
                        146,
                        40
                    ],
                    "rawdesc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean|integer"
                        }
                    ],
                    "start": [
                        146,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setcstacklimit(limit: integer)\n  -> boolean|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    146,
                    29
                ],
                "name": "setcstacklimit",
                "rawdesc": "\n### **Deprecated in `Lua 5.4.2`**\n\nSets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.\n\nIn case of success, this function returns the old limit. In case of error, it returns `false`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setcstacklimit\"])",
                "start": [
                    146,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                158,
                                29
                            ],
                            "name": "object",
                            "start": [
                                158,
                                23
                            ],
                            "type": "local",
                            "view": "<T>"
                        },
                        {
                            "finish": [
                                158,
                                34
                            ],
                            "name": "env",
                            "start": [
                                158,
                                31
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                    "finish": [
                        158,
                        39
                    ],
                    "rawdesc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                    "returns": [
                        {
                            "name": "object",
                            "type": "function.return",
                            "view": "<T>"
                        }
                    ],
                    "start": [
                        158,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setfenv(object: <T>, env: table)\n  -> object: <T>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    158,
                    22
                ],
                "name": "setfenv",
                "rawdesc": "\nSets the environment of the given `object` to the given `table` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setfenv\"])",
                "start": [
                    158,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                177,
                                29
                            ],
                            "name": "thread",
                            "start": [
                                177,
                                23
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                177,
                                35
                            ],
                            "name": "hook",
                            "start": [
                                177,
                                31
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                177,
                                41
                            ],
                            "name": "mask",
                            "start": [
                                177,
                                37
                            ],
                            "type": "local",
                            "view": "string|\"c\"|\"l\"|\"r\""
                        },
                        {
                            "finish": [
                                177,
                                48
                            ],
                            "name": "count",
                            "start": [
                                177,
                                43
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                    "finish": [
                        177,
                        53
                    ],
                    "rawdesc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                    "start": [
                        177,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.sethook(thread: thread, hook: fun(...any):...unknown, mask: string|\"c\"|\"l\"|\"r\", count?: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    177,
                    22
                ],
                "name": "sethook",
                "rawdesc": "\nSets the given function as a hook.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.sethook\"])\n\n\n---\n\n```lua\nmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                "start": [
                    177,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                190,
                                30
                            ],
                            "name": "thread",
                            "start": [
                                190,
                                24
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                190,
                                37
                            ],
                            "name": "level",
                            "start": [
                                190,
                                32
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                190,
                                44
                            ],
                            "name": "index",
                            "start": [
                                190,
                                39
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                190,
                                51
                            ],
                            "name": "value",
                            "start": [
                                190,
                                46
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                    "finish": [
                        190,
                        56
                    ],
                    "rawdesc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        190,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setlocal(thread: thread, level: integer, index: integer, value: any)\n  -> name: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    190,
                    23
                ],
                "name": "setlocal",
                "rawdesc": "\nAssigns the `value` to the local variable with index `local` of the function at `level` of the stack.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setlocal\"])",
                "start": [
                    190,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                201,
                                33
                            ],
                            "name": "value",
                            "start": [
                                201,
                                28
                            ],
                            "type": "local",
                            "view": "<T>"
                        },
                        {
                            "finish": [
                                201,
                                39
                            ],
                            "name": "meta",
                            "start": [
                                201,
                                35
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                    "finish": [
                        201,
                        44
                    ],
                    "rawdesc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                    "returns": [
                        {
                            "name": "value",
                            "type": "function.return",
                            "view": "<T>"
                        }
                    ],
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setmetatable(value: <T>, meta?: table)\n  -> value: <T>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    201,
                    27
                ],
                "name": "setmetatable",
                "rawdesc": "\nSets the metatable for the given value to the given table (which can be `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setmetatable\"])",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                212,
                                27
                            ],
                            "name": "f",
                            "start": [
                                212,
                                26
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                212,
                                31
                            ],
                            "name": "up",
                            "start": [
                                212,
                                29
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                212,
                                38
                            ],
                            "name": "value",
                            "start": [
                                212,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                    "finish": [
                        212,
                        43
                    ],
                    "rawdesc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                    "returns": [
                        {
                            "name": "name",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        212,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setupvalue(f: fun(...any):...unknown, up: integer, value: any)\n  -> name: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    212,
                    25
                ],
                "name": "setupvalue",
                "rawdesc": "\nAssigns the `value` to the upvalue with index `up` of the function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setupvalue\"])",
                "start": [
                    212,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                222,
                                33
                            ],
                            "name": "udata",
                            "start": [
                                222,
                                28
                            ],
                            "type": "local",
                            "view": "userdata"
                        },
                        {
                            "finish": [
                                222,
                                40
                            ],
                            "name": "value",
                            "start": [
                                222,
                                35
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                    "finish": [
                        222,
                        45
                    ],
                    "rawdesc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                    "returns": [
                        {
                            "name": "udata",
                            "type": "function.return",
                            "view": "userdata"
                        }
                    ],
                    "start": [
                        222,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.setuservalue(udata: userdata, value: any)\n  -> udata: userdata"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    222,
                    27
                ],
                "name": "setuservalue",
                "rawdesc": "\nSets the given value as the Lua value associated to the given udata.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.setuservalue\"])",
                "start": [
                    222,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                235,
                                31
                            ],
                            "name": "thread",
                            "start": [
                                235,
                                25
                            ],
                            "type": "local",
                            "view": "thread"
                        },
                        {
                            "finish": [
                                235,
                                40
                            ],
                            "name": "message",
                            "start": [
                                235,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                235,
                                47
                            ],
                            "name": "level",
                            "start": [
                                235,
                                42
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                    "finish": [
                        235,
                        52
                    ],
                    "rawdesc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                    "returns": [
                        {
                            "name": "message",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        235,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.traceback(thread: thread, message?: any, level?: integer)\n  -> message: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    235,
                    24
                ],
                "name": "traceback",
                "rawdesc": "\nReturns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.traceback\"])",
                "start": [
                    235,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                247,
                                26
                            ],
                            "name": "f",
                            "start": [
                                247,
                                25
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                247,
                                29
                            ],
                            "name": "n",
                            "start": [
                                247,
                                28
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                    "finish": [
                        247,
                        34
                    ],
                    "rawdesc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                    "returns": [
                        {
                            "name": "id",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        247,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.upvalueid(f: fun(...any):...unknown, n: integer)\n  -> id: lightuserdata"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    247,
                    24
                ],
                "name": "upvalueid",
                "rawdesc": "\nReturns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvalueid\"])",
                "start": [
                    247,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                259,
                                29
                            ],
                            "name": "f1",
                            "start": [
                                259,
                                27
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                259,
                                33
                            ],
                            "name": "n1",
                            "start": [
                                259,
                                31
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                259,
                                37
                            ],
                            "name": "f2",
                            "start": [
                                259,
                                35
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                259,
                                41
                            ],
                            "name": "n2",
                            "start": [
                                259,
                                39
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                    "finish": [
                        259,
                        46
                    ],
                    "rawdesc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function debug.upvaluejoin(f1: fun(...any):...unknown, n1: integer, f2: fun(...any):...unknown, n2: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/debug.lua",
                "finish": [
                    259,
                    26
                ],
                "name": "upvaluejoin",
                "rawdesc": "\nMake the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-debug.upvaluejoin\"])",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "debuglib",
        "type": "type",
        "view": "debuglib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpens the named file and executes its content as a Lua chunk. When called without arguments, `dofile` executes the content of the standard input (`stdin`). Returns all values returned by the chunk. In case of errors, `dofile` propagates the error to its caller. (That is, `dofile` does not run in protected mode.)\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-dofile\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                50,
                                24
                            ],
                            "name": "filename",
                            "start": [
                                50,
                                16
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nOpens the named file and executes its content as a Lua chunk. When called without arguments, `dofile` executes the content of the standard input (`stdin`). Returns all values returned by the chunk. In case of errors, `dofile` propagates the error to its caller. (That is, `dofile` does not run in protected mode.)\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-dofile\"])",
                    "finish": [
                        50,
                        29
                    ],
                    "rawdesc": "\nOpens the named file and executes its content as a Lua chunk. When called without arguments, `dofile` executes the content of the standard input (`stdin`). Returns all values returned by the chunk. In case of errors, `dofile` propagates the error to its caller. (That is, `dofile` does not run in protected mode.)\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-dofile\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        50,
                        0
                    ],
                    "type": "function",
                    "view": "function dofile(filename?: string)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    50,
                    15
                ],
                "rawdesc": "\nOpens the named file and executes its content as a Lua chunk. When called without arguments, `dofile` executes the content of the standard input (`stdin`). Returns all values returned by the chunk. In case of errors, `dofile` propagates the error to its caller. (That is, `dofile` does not run in protected mode.)\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-dofile\"])",
                "start": [
                    50,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "dofile",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTerminates the last protected function called and returns message as the error object.\n\nUsually, `error` adds some information about the error position at the beginning of the message, if the message is a string.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-error\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                62,
                                22
                            ],
                            "name": "message",
                            "start": [
                                62,
                                15
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                62,
                                29
                            ],
                            "name": "level",
                            "start": [
                                62,
                                24
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nTerminates the last protected function called and returns message as the error object.\n\nUsually, `error` adds some information about the error position at the beginning of the message, if the message is a string.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-error\"])",
                    "finish": [
                        62,
                        34
                    ],
                    "rawdesc": "\nTerminates the last protected function called and returns message as the error object.\n\nUsually, `error` adds some information about the error position at the beginning of the message, if the message is a string.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-error\"])",
                    "start": [
                        62,
                        0
                    ],
                    "type": "function",
                    "view": "function error(message: any, level?: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    62,
                    14
                ],
                "rawdesc": "\nTerminates the last protected function called and returns message as the error object.\n\nUsually, `error` adds some information about the error position at the beginning of the message, if the message is a string.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-error\"])",
                "start": [
                    62,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "error",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "finish": [
                    179,
                    34
                ],
                "rawdesc": "```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "start": [
                    179,
                    10
                ],
                "type": "doc.alias",
                "view": "\"exit\"|\"signal\""
            }
        ],
        "fields": [],
        "name": "exitcode",
        "type": "type",
        "view": "exitcode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            7,
                            24
                        ],
                        "start": [
                            7,
                            17
                        ],
                        "type": "doc.extends.name",
                        "view": "boolean"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    7,
                    24
                ],
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "false",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "false",
        "type": "type",
        "view": "false"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            15,
                            30
                        ],
                        "start": [
                            15,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "userdata"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    15,
                    30
                ],
                "start": [
                    15,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.VLA*",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "ffi.VLA*",
        "type": "type",
        "view": "ffi.VLA*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            16,
                            30
                        ],
                        "start": [
                            16,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "userdata"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    16,
                    30
                ],
                "start": [
                    16,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.VLS*",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "ffi.VLS*",
        "type": "type",
        "view": "ffi.VLS*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            13,
                            32
                        ],
                        "start": [
                            13,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "ffi.cdata*"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    13,
                    32
                ],
                "start": [
                    13,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.cb*",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                115,
                                8
                            ],
                            "name": "self",
                            "start": [
                                115,
                                8
                            ],
                            "type": "self",
                            "view": "ffi.cb*"
                        }
                    ],
                    "finish": [
                        115,
                        22
                    ],
                    "start": [
                        115,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ffi.cb*:free()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    115,
                    16
                ],
                "name": "free",
                "start": [
                    115,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                118,
                                8
                            ],
                            "name": "self",
                            "start": [
                                118,
                                8
                            ],
                            "type": "self",
                            "view": "ffi.cb*"
                        },
                        {
                            "finish": [
                                118,
                                20
                            ],
                            "name": "func",
                            "start": [
                                118,
                                16
                            ],
                            "type": "local",
                            "view": "function"
                        }
                    ],
                    "finish": [
                        118,
                        25
                    ],
                    "start": [
                        118,
                        0
                    ],
                    "type": "function",
                    "view": "(method) ffi.cb*:set(func: function)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    118,
                    15
                ],
                "name": "set",
                "start": [
                    118,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ffi.cb*",
        "type": "type",
        "view": "ffi.cb*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            11,
                            30
                        ],
                        "start": [
                            11,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "userdata"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    11,
                    30
                ],
                "start": [
                    11,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.cdata*",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "ffi.cdata*",
        "type": "type",
        "view": "ffi.cdata*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            10,
                            28
                        ],
                        "start": [
                            10,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "string"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    10,
                    28
                ],
                "start": [
                    10,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.cdecl*",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                20,
                                22
                            ],
                            "name": "s",
                            "start": [
                                20,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                20,
                                25
                            ],
                            "name": "i",
                            "start": [
                                20,
                                24
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                20,
                                28
                            ],
                            "name": "j",
                            "start": [
                                20,
                                27
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "finish": [
                        20,
                        33
                    ],
                    "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function string.byte(s: string|number, i?: integer, j?: integer)\n  -> ...integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    20,
                    20
                ],
                "name": "byte",
                "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                31,
                                25
                            ],
                            "name": "byte",
                            "start": [
                                31,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                31,
                                30
                            ],
                            "start": [
                                31,
                                27
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "finish": [
                        31,
                        35
                    ],
                    "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function string.char(byte: integer, ...integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    31,
                    20
                ],
                "name": "char",
                "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                42,
                                22
                            ],
                            "name": "f",
                            "start": [
                                42,
                                21
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                42,
                                29
                            ],
                            "name": "strip",
                            "start": [
                                42,
                                24
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "finish": [
                        42,
                        34
                    ],
                    "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function string.dump(f: fun(...any):...unknown, strip?: boolean)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    42,
                    20
                ],
                "name": "dump",
                "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                57,
                                22
                            ],
                            "name": "s",
                            "start": [
                                57,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                57,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                37
                            ],
                            "name": "init",
                            "start": [
                                57,
                                33
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                57,
                                44
                            ],
                            "name": "plain",
                            "start": [
                                57,
                                39
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                    "finish": [
                        57,
                        49
                    ],
                    "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                    "returns": [
                        {
                            "name": "start",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "name": "end",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "desc": "captured",
                            "name": "...",
                            "rawdesc": "captured",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        57,
                        0
                    ],
                    "type": "function",
                    "view": "function string.find(s: string|number, pattern: string|number, init?: integer, plain?: boolean)\n  -> start: integer|nil\n  2. end: integer|nil\n  3. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    57,
                    20
                ],
                "name": "find",
                "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                "start": [
                    57,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                68,
                                24
                            ],
                            "name": "s",
                            "start": [
                                68,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                68,
                                29
                            ],
                            "start": [
                                68,
                                26
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "finish": [
                        68,
                        34
                    ],
                    "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function string.format(s: string|number, ...any)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    68,
                    22
                ],
                "name": "format",
                "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                79,
                                24
                            ],
                            "name": "s",
                            "start": [
                                79,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                79,
                                33
                            ],
                            "name": "pattern",
                            "start": [
                                79,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "finish": [
                        79,
                        38
                    ],
                    "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():string, ...unknown"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gmatch(s: string|number, pattern: string|number)\n  -> fun():string, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    79,
                    22
                ],
                "name": "gmatch",
                "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                92,
                                22
                            ],
                            "name": "s",
                            "start": [
                                92,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                92,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                37
                            ],
                            "name": "repl",
                            "start": [
                                92,
                                33
                            ],
                            "type": "local",
                            "view": "string|number|function|table"
                        },
                        {
                            "finish": [
                                92,
                                40
                            ],
                            "name": "n",
                            "start": [
                                92,
                                39
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "finish": [
                        92,
                        45
                    ],
                    "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "count",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        92,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gsub(s: string|number, pattern: string|number, repl: string|number|function|table, n?: integer)\n  -> string\n  2. count: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    92,
                    20
                ],
                "name": "gsub",
                "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "start": [
                    92,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                102,
                                21
                            ],
                            "name": "s",
                            "start": [
                                102,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "finish": [
                        102,
                        26
                    ],
                    "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function string.len(s: string|number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    102,
                    19
                ],
                "name": "len",
                "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                112,
                                23
                            ],
                            "name": "s",
                            "start": [
                                112,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "finish": [
                        112,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        112,
                        0
                    ],
                    "type": "function",
                    "view": "function string.lower(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    112,
                    21
                ],
                "name": "lower",
                "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "start": [
                    112,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                124,
                                23
                            ],
                            "name": "s",
                            "start": [
                                124,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                32
                            ],
                            "name": "pattern",
                            "start": [
                                124,
                                25
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                38
                            ],
                            "name": "init",
                            "start": [
                                124,
                                34
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "finish": [
                        124,
                        43
                    ],
                    "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        124,
                        0
                    ],
                    "type": "function",
                    "view": "function string.match(s: string|number, pattern: string|number, init?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    124,
                    21
                ],
                "name": "match",
                "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "start": [
                    124,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                138,
                                24
                            ],
                            "name": "fmt",
                            "start": [
                                138,
                                21
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                138,
                                28
                            ],
                            "name": "v1",
                            "start": [
                                138,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                138,
                                32
                            ],
                            "name": "v2",
                            "start": [
                                138,
                                30
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        },
                        {
                            "finish": [
                                138,
                                37
                            ],
                            "start": [
                                138,
                                34
                            ],
                            "type": "...",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "finish": [
                        138,
                        42
                    ],
                    "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "returns": [
                        {
                            "name": "binary",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        138,
                        0
                    ],
                    "type": "function",
                    "view": "function string.pack(fmt: string, v1: string|number, v2?: string|number, ...string|number)\n  -> binary: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    138,
                    20
                ],
                "name": "pack",
                "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "start": [
                    138,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                28
                            ],
                            "name": "fmt",
                            "start": [
                                149,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "finish": [
                        149,
                        33
                    ],
                    "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function string.packsize(fmt: string)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    149,
                    24
                ],
                "name": "packsize",
                "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                161,
                                21
                            ],
                            "name": "s",
                            "start": [
                                161,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                161,
                                24
                            ],
                            "name": "n",
                            "start": [
                                161,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                161,
                                29
                            ],
                            "name": "sep",
                            "start": [
                                161,
                                26
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        }
                    ],
                    "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "finish": [
                        161,
                        34
                    ],
                    "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "function string.rep(s: string|number, n: integer, sep?: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    161,
                    19
                ],
                "name": "rep",
                "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "start": [
                    161,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                171,
                                25
                            ],
                            "name": "s",
                            "start": [
                                171,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "finish": [
                        171,
                        30
                    ],
                    "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        171,
                        0
                    ],
                    "type": "function",
                    "view": "function string.reverse(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    171,
                    23
                ],
                "name": "reverse",
                "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "start": [
                    171,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                183,
                                21
                            ],
                            "name": "s",
                            "start": [
                                183,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                183,
                                24
                            ],
                            "name": "i",
                            "start": [
                                183,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                183,
                                27
                            ],
                            "name": "j",
                            "start": [
                                183,
                                26
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "finish": [
                        183,
                        32
                    ],
                    "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        183,
                        0
                    ],
                    "type": "function",
                    "view": "function string.sub(s: string|number, i: integer, j?: integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    183,
                    19
                ],
                "name": "sub",
                "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "start": [
                    183,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                196,
                                26
                            ],
                            "name": "fmt",
                            "start": [
                                196,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                29
                            ],
                            "name": "s",
                            "start": [
                                196,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                34
                            ],
                            "name": "pos",
                            "start": [
                                196,
                                31
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "finish": [
                        196,
                        39
                    ],
                    "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        196,
                        0
                    ],
                    "type": "function",
                    "view": "function string.unpack(fmt: string, s: string, pos?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    196,
                    22
                ],
                "name": "unpack",
                "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "start": [
                    196,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                206,
                                23
                            ],
                            "name": "s",
                            "start": [
                                206,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "finish": [
                        206,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        206,
                        0
                    ],
                    "type": "function",
                    "view": "function string.upper(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    206,
                    21
                ],
                "name": "upper",
                "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "start": [
                    206,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ffi.cdecl*",
        "type": "type",
        "view": "ffi.cdecl*"
    },
    {
        "defines": [
            {
                "finish": [
                    12,
                    54
                ],
                "start": [
                    12,
                    10
                ],
                "type": "doc.alias",
                "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
            }
        ],
        "fields": [],
        "name": "ffi.ct*",
        "type": "type",
        "view": "ffi.ct*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            5,
                            30
                        ],
                        "start": [
                            5,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "userdata"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    5,
                    30
                ],
                "start": [
                    5,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.ctype*",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "ffi.ctype*",
        "type": "type",
        "view": "ffi.ctype*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            2,
                            31
                        ],
                        "start": [
                            2,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "table"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    2,
                    31
                ],
                "start": [
                    2,
                    10
                ],
                "type": "doc.class",
                "view": "ffi.namespace*",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        3,
                        27
                    ],
                    "start": [
                        3,
                        19
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                3,
                                27
                            ],
                            "start": [
                                3,
                                19
                            ],
                            "type": "doc.type.name",
                            "view": "function"
                        }
                    ],
                    "view": "function"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    3,
                    27
                ],
                "name": "[string]",
                "start": [
                    3,
                    11
                ],
                "type": "doc.field",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ffi.namespace*",
        "type": "type",
        "view": "ffi.namespace*"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    19,
                    16
                ],
                "start": [
                    19,
                    10
                ],
                "type": "doc.class",
                "view": "ffilib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        20,
                        29
                    ],
                    "start": [
                        20,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                20,
                                29
                            ],
                            "start": [
                                20,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "ffi.namespace*"
                        }
                    ],
                    "view": "ffi.namespace*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    20,
                    29
                ],
                "name": "C",
                "start": [
                    20,
                    10
                ],
                "type": "doc.field",
                "view": "ffi.namespace*",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                113,
                                22
                            ],
                            "name": "param",
                            "start": [
                                113,
                                17
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "finish": [
                        113,
                        27
                    ],
                    "returns": [
                        {
                            "name": "status",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        113,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.abi(param: string)\n  -> status: boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    113,
                    16
                ],
                "name": "abi",
                "start": [
                    113,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                74,
                                23
                            ],
                            "name": "ct",
                            "start": [
                                74,
                                21
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        }
                    ],
                    "finish": [
                        74,
                        28
                    ],
                    "returns": [
                        {
                            "name": "align",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        74,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.alignof(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*)\n  -> align: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    74,
                    20
                ],
                "name": "alignof",
                "start": [
                    74,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        22,
                        21
                    ],
                    "start": [
                        22,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                21
                            ],
                            "start": [
                                22,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    22,
                    21
                ],
                "name": "arch",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                53,
                                20
                            ],
                            "name": "ct",
                            "start": [
                                53,
                                18
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                53,
                                26
                            ],
                            "name": "init",
                            "start": [
                                53,
                                22
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "finish": [
                        53,
                        31
                    ],
                    "returns": [
                        {
                            "name": "cdata",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        53,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.cast(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, init: any)\n  -> cdata: ffi.cdata*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    53,
                    17
                ],
                "name": "cast",
                "start": [
                    53,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                27,
                                21
                            ],
                            "name": "def",
                            "start": [
                                27,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                27,
                                29
                            ],
                            "name": "params",
                            "start": [
                                27,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                27,
                                34
                            ],
                            "start": [
                                27,
                                31
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "finish": [
                        27,
                        39
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.cdef(def: string, params?: any, ...any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    27,
                    17
                ],
                "name": "cdef",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                104,
                                21
                            ],
                            "name": "dst",
                            "start": [
                                104,
                                18
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                104,
                                26
                            ],
                            "name": "src",
                            "start": [
                                104,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                104,
                                31
                            ],
                            "name": "len",
                            "start": [
                                104,
                                28
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "finish": [
                        104,
                        36
                    ],
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.copy(dst: any, src: any, len: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    104,
                    17
                ],
                "name": "copy",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                25
                            ],
                            "name": "newerr",
                            "start": [
                                93,
                                19
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "finish": [
                        93,
                        30
                    ],
                    "returns": [
                        {
                            "name": "err",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.errno(newerr?: integer)\n  -> err: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    93,
                    18
                ],
                "name": "errno",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                109,
                                21
                            ],
                            "name": "dst",
                            "start": [
                                109,
                                18
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                109,
                                26
                            ],
                            "name": "len",
                            "start": [
                                109,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                109,
                                29
                            ],
                            "name": "c",
                            "start": [
                                109,
                                28
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "finish": [
                        109,
                        34
                    ],
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.fill(dst: any, len: integer, c?: any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    109,
                    17
                ],
                "name": "fill",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                63,
                                21
                            ],
                            "name": "cdata",
                            "start": [
                                63,
                                16
                            ],
                            "type": "local",
                            "view": "ffi.cdata*"
                        },
                        {
                            "finish": [
                                63,
                                32
                            ],
                            "name": "finalizer",
                            "start": [
                                63,
                                23
                            ],
                            "type": "local",
                            "view": "function?"
                        }
                    ],
                    "finish": [
                        63,
                        37
                    ],
                    "returns": [
                        {
                            "name": "cdata",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        63,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.gc(cdata: ffi.cdata*, finalizer?: function)\n  -> cdata: ffi.cdata*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    63,
                    15
                ],
                "name": "gc",
                "start": [
                    63,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                88,
                                22
                            ],
                            "name": "ct",
                            "start": [
                                88,
                                20
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                88,
                                27
                            ],
                            "name": "obj",
                            "start": [
                                88,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "finish": [
                        88,
                        32
                    ],
                    "returns": [
                        {
                            "name": "status",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        88,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.istype(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, obj: any)\n  -> status: boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    88,
                    19
                ],
                "name": "istype",
                "start": [
                    88,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                33,
                                22
                            ],
                            "name": "name",
                            "start": [
                                33,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                33,
                                30
                            ],
                            "name": "global",
                            "start": [
                                33,
                                24
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        33,
                        35
                    ],
                    "returns": [
                        {
                            "name": "clib",
                            "type": "function.return",
                            "view": "ffi.namespace*"
                        }
                    ],
                    "start": [
                        33,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.load(name: string, global?: boolean)\n  -> clib: ffi.namespace*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    33,
                    17
                ],
                "name": "load",
                "start": [
                    33,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                58,
                                24
                            ],
                            "name": "ct",
                            "start": [
                                58,
                                22
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                58,
                                35
                            ],
                            "name": "metatable",
                            "start": [
                                58,
                                26
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "finish": [
                        58,
                        40
                    ],
                    "returns": [
                        {
                            "name": "ctype",
                            "type": "function.return",
                            "view": "ffi.ctype*"
                        }
                    ],
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.metatype(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, metatable: table)\n  -> ctype: ffi.ctype*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    58,
                    21
                ],
                "name": "metatype",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                41,
                                19
                            ],
                            "name": "ct",
                            "start": [
                                41,
                                17
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                41,
                                26
                            ],
                            "name": "nelem",
                            "start": [
                                41,
                                21
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                41,
                                32
                            ],
                            "name": "init",
                            "start": [
                                41,
                                28
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                41,
                                37
                            ],
                            "start": [
                                41,
                                34
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "finish": [
                        41,
                        42
                    ],
                    "returns": [
                        {
                            "name": "cdata",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.new(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, nelem?: integer, init?: any, ...any)\n  -> cdata: ffi.cdata*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    41,
                    16
                ],
                "name": "new",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                82,
                                24
                            ],
                            "name": "ct",
                            "start": [
                                82,
                                22
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                82,
                                31
                            ],
                            "name": "field",
                            "start": [
                                82,
                                26
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "finish": [
                        82,
                        36
                    ],
                    "returns": [
                        {
                            "name": "ofs",
                            "type": "function.return",
                            "view": "integer"
                        },
                        {
                            "name": "bpos",
                            "type": "function.return",
                            "view": "integer?"
                        },
                        {
                            "name": "bsize",
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        82,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.offsetof(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, field: string)\n  -> ofs: integer\n  2. bpos: integer?\n  3. bsize: integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    82,
                    21
                ],
                "name": "offsetof",
                "start": [
                    82,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        21,
                        21
                    ],
                    "start": [
                        21,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                21,
                                21
                            ],
                            "start": [
                                21,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    21,
                    21
                ],
                "name": "os",
                "start": [
                    21,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                69,
                                22
                            ],
                            "name": "ct",
                            "start": [
                                69,
                                20
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                69,
                                29
                            ],
                            "name": "nelem",
                            "start": [
                                69,
                                24
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "finish": [
                        69,
                        34
                    ],
                    "returns": [
                        {
                            "name": "size",
                            "type": "function.return",
                            "view": "integer|nil"
                        }
                    ],
                    "start": [
                        69,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.sizeof(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, nelem?: integer)\n  -> size: integer|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    69,
                    19
                ],
                "name": "sizeof",
                "start": [
                    69,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                98,
                                23
                            ],
                            "name": "ptr",
                            "start": [
                                98,
                                20
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                98,
                                28
                            ],
                            "name": "len",
                            "start": [
                                98,
                                25
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "finish": [
                        98,
                        33
                    ],
                    "returns": [
                        {
                            "name": "str",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        98,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.string(ptr: any, len?: integer)\n  -> str: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    98,
                    19
                ],
                "name": "string",
                "start": [
                    98,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                47,
                                22
                            ],
                            "name": "ct",
                            "start": [
                                47,
                                20
                            ],
                            "type": "local",
                            "view": "ffi.cdata*|ffi.cdecl*|ffi.ctype*"
                        },
                        {
                            "finish": [
                                47,
                                30
                            ],
                            "name": "params",
                            "start": [
                                47,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                47,
                                35
                            ],
                            "start": [
                                47,
                                32
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "finish": [
                        47,
                        40
                    ],
                    "returns": [
                        {
                            "name": "ctype",
                            "type": "function.return",
                            "view": "ffi.ctype*"
                        }
                    ],
                    "start": [
                        47,
                        0
                    ],
                    "type": "function",
                    "view": "function ffilib.typeof(ct: ffi.cdata*|ffi.cdecl*|ffi.ctype*, params?: any, ...any)\n  -> ctype: ffi.ctype*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/ffi.lua",
                "finish": [
                    47,
                    19
                ],
                "name": "typeof",
                "start": [
                    47,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ffilib",
        "type": "type",
        "view": "ffilib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    170,
                    15
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                "start": [
                    170,
                    10
                ],
                "type": "doc.class",
                "view": "file*",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClose `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                189,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                189,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        }
                    ],
                    "desc": "\nClose `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "finish": [
                        189,
                        25
                    ],
                    "rawdesc": "\nClose `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean?"
                        },
                        {
                            "name": "exitcode",
                            "type": "function.return",
                            "view": "(\"exit\"|\"signal\")?"
                        },
                        {
                            "name": "code",
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        189,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:close()\n  -> suc: boolean?\n  2. exitcode: (\"exit\"|\"signal\")?\n  3. code: integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    189,
                    19
                ],
                "name": "close",
                "rawdesc": "\nClose `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "start": [
                    189,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSaves any written data to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:flush\"])",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                196,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                196,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        }
                    ],
                    "desc": "\nSaves any written data to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:flush\"])",
                    "finish": [
                        196,
                        25
                    ],
                    "rawdesc": "\nSaves any written data to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:flush\"])",
                    "start": [
                        196,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:flush()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    196,
                    19
                ],
                "name": "flush",
                "rawdesc": "\nSaves any written data to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:flush\"])",
                "start": [
                    196,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n------\n```lua\nfor c in file:lines(...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                211,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                211,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        },
                        {
                            "finish": [
                                211,
                                23
                            ],
                            "start": [
                                211,
                                20
                            ],
                            "type": "...",
                            "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
                        }
                    ],
                    "desc": "\n------\n```lua\nfor c in file:lines(...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "finish": [
                        211,
                        28
                    ],
                    "rawdesc": "\n------\n```lua\nfor c in file:lines(...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():any, ...unknown"
                        }
                    ],
                    "start": [
                        211,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:lines(...string|integer|\"*L\"|\"*a\"|\"*l\"...(+1))\n  -> fun():any, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    211,
                    19
                ],
                "name": "lines",
                "rawdesc": "\n------\n```lua\nfor c in file:lines(...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    211,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                222,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                222,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        },
                        {
                            "finish": [
                                222,
                                22
                            ],
                            "start": [
                                222,
                                19
                            ],
                            "type": "...",
                            "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
                        }
                    ],
                    "desc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "finish": [
                        222,
                        27
                    ],
                    "rawdesc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        222,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:read(...string|integer|\"*L\"|\"*a\"|\"*l\"...(+1))\n  -> any\n  2. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    222,
                    18
                ],
                "name": "read",
                "rawdesc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    222,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets and gets the file position, measured from the beginning of the file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:seek\"])\n\n\n```lua\nwhence:\n    | \"set\" -- Base is beginning of the file.\n   -> \"cur\" -- Base is current position.\n    | \"end\" -- Base is end of file.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                238,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                238,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        },
                        {
                            "finish": [
                                238,
                                25
                            ],
                            "name": "whence",
                            "start": [
                                238,
                                19
                            ],
                            "type": "local",
                            "view": "(\"cur\"|\"end\"|\"set\")?"
                        },
                        {
                            "finish": [
                                238,
                                33
                            ],
                            "name": "offset",
                            "start": [
                                238,
                                27
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nSets and gets the file position, measured from the beginning of the file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:seek\"])\n\n\n```lua\nwhence:\n    | \"set\" -- Base is beginning of the file.\n   -> \"cur\" -- Base is current position.\n    | \"end\" -- Base is end of file.\n```",
                    "finish": [
                        238,
                        38
                    ],
                    "rawdesc": "\nSets and gets the file position, measured from the beginning of the file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:seek\"])\n\n\n```lua\nwhence:\n    | \"set\" -- Base is beginning of the file.\n   -> \"cur\" -- Base is current position.\n    | \"end\" -- Base is end of file.\n```",
                    "returns": [
                        {
                            "name": "offset",
                            "type": "function.return",
                            "view": "integer"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        238,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:seek(whence?: \"cur\"|\"end\"|\"set\", offset?: integer)\n  -> offset: integer\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    238,
                    18
                ],
                "name": "seek",
                "rawdesc": "\nSets and gets the file position, measured from the beginning of the file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:seek\"])\n\n\n```lua\nwhence:\n    | \"set\" -- Base is beginning of the file.\n   -> \"cur\" -- Base is current position.\n    | \"end\" -- Base is end of file.\n```",
                "start": [
                    238,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the buffering mode for an output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:setvbuf\"])\n\n\n```lua\nmode:\n    | \"no\" -- Output operation appears immediately.\n    | \"full\" -- Performed only when the buffer is full.\n    | \"line\" -- Buffered until a newline is output.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                252,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                252,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        },
                        {
                            "finish": [
                                252,
                                26
                            ],
                            "name": "mode",
                            "start": [
                                252,
                                22
                            ],
                            "type": "local",
                            "view": "\"full\"|\"line\"|\"no\""
                        },
                        {
                            "finish": [
                                252,
                                32
                            ],
                            "name": "size",
                            "start": [
                                252,
                                28
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nSets the buffering mode for an output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:setvbuf\"])\n\n\n```lua\nmode:\n    | \"no\" -- Output operation appears immediately.\n    | \"full\" -- Performed only when the buffer is full.\n    | \"line\" -- Buffered until a newline is output.\n```",
                    "finish": [
                        252,
                        37
                    ],
                    "rawdesc": "\nSets the buffering mode for an output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:setvbuf\"])\n\n\n```lua\nmode:\n    | \"no\" -- Output operation appears immediately.\n    | \"full\" -- Performed only when the buffer is full.\n    | \"line\" -- Buffered until a newline is output.\n```",
                    "start": [
                        252,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:setvbuf(mode: \"full\"|\"line\"|\"no\", size?: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    252,
                    21
                ],
                "name": "setvbuf",
                "rawdesc": "\nSets the buffering mode for an output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:setvbuf\"])\n\n\n```lua\nmode:\n    | \"no\" -- Output operation appears immediately.\n    | \"full\" -- Performed only when the buffer is full.\n    | \"line\" -- Buffered until a newline is output.\n```",
                "start": [
                    252,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrites the value of each of its arguments to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:write\"])",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                262,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                262,
                                8
                            ],
                            "type": "self",
                            "view": "file*"
                        },
                        {
                            "finish": [
                                262,
                                23
                            ],
                            "start": [
                                262,
                                20
                            ],
                            "type": "...",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nWrites the value of each of its arguments to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:write\"])",
                    "finish": [
                        262,
                        28
                    ],
                    "rawdesc": "\nWrites the value of each of its arguments to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:write\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        262,
                        0
                    ],
                    "type": "function",
                    "view": "(method) file*:write(...string|number)\n  -> file*?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    262,
                    19
                ],
                "name": "write",
                "rawdesc": "\nWrites the value of each of its arguments to `file`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file:write\"])",
                "start": [
                    262,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "file*",
        "type": "type",
        "view": "file*"
    },
    {
        "defines": [
            {
                "desc": "```lua\nfiletype:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                "finish": [
                    144,
                    10
                ],
                "rawdesc": "```lua\nfiletype:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                "start": [
                    141,
                    10
                ],
                "type": "doc.alias",
                "view": "\"closed file\"|\"file\"|`nil`"
            }
        ],
        "fields": [],
        "name": "filetype",
        "type": "type",
        "view": "filetype"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    15,
                    18
                ],
                "start": [
                    15,
                    10
                ],
                "type": "doc.class",
                "view": "function",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "function",
        "type": "type",
        "view": "function"
    },
    {
        "defines": [
            {
                "desc": "```lua\ngcoptions:\n   -> \"collect\" -- Performs a full garbage-collection cycle.\n    | \"stop\" -- Stops automatic execution.\n    | \"restart\" -- Restarts automatic execution.\n    | \"count\" -- Returns the total memory in Kbytes.\n    | \"step\" -- Performs a garbage-collection step.\n    | \"isrunning\" -- Returns whether the collector is running.\n    | \"setpause\" -- Set `pause`.\n    | \"setstepmul\" -- Set `step multiplier`.\n```",
                "finish": [
                    31,
                    17
                ],
                "rawdesc": "```lua\ngcoptions:\n   -> \"collect\" -- Performs a full garbage-collection cycle.\n    | \"stop\" -- Stops automatic execution.\n    | \"restart\" -- Restarts automatic execution.\n    | \"count\" -- Returns the total memory in Kbytes.\n    | \"step\" -- Performs a garbage-collection step.\n    | \"isrunning\" -- Returns whether the collector is running.\n    | \"setpause\" -- Set `pause`.\n    | \"setstepmul\" -- Set `step multiplier`.\n```",
                "start": [
                    23,
                    10
                ],
                "type": "doc.alias",
                "view": "\"collect\"|\"count\"|\"isrunning\"|\"restart\"|\"setpause\"...(+3)"
            }
        ],
        "fields": [],
        "name": "gcoptions",
        "type": "type",
        "view": "gcoptions"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current environment in use by the function. `f` can be a Lua function or a number that specifies the function at that stack level.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getfenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                81,
                                18
                            ],
                            "name": "f",
                            "start": [
                                81,
                                17
                            ],
                            "type": "local",
                            "view": "(integer|fun(...any):...unknown)?"
                        }
                    ],
                    "desc": "\nReturns the current environment in use by the function. `f` can be a Lua function or a number that specifies the function at that stack level.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getfenv\"])",
                    "finish": [
                        81,
                        23
                    ],
                    "rawdesc": "\nReturns the current environment in use by the function. `f` can be a Lua function or a number that specifies the function at that stack level.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getfenv\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "function getfenv(f?: integer|fun(...any):...unknown)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    81,
                    16
                ],
                "rawdesc": "\nReturns the current environment in use by the function. `f` can be a Lua function or a number that specifies the function at that stack level.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getfenv\"])",
                "start": [
                    81,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "getfenv",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIf object does not have a metatable, returns nil. Otherwise, if the object's metatable has a __metatable field, returns the associated value. Otherwise, returns the metatable of the given object.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getmetatable\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                91,
                                28
                            ],
                            "name": "object",
                            "start": [
                                91,
                                22
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nIf object does not have a metatable, returns nil. Otherwise, if the object's metatable has a __metatable field, returns the associated value. Otherwise, returns the metatable of the given object.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getmetatable\"])",
                    "finish": [
                        91,
                        33
                    ],
                    "rawdesc": "\nIf object does not have a metatable, returns nil. Otherwise, if the object's metatable has a __metatable field, returns the associated value. Otherwise, returns the metatable of the given object.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getmetatable\"])",
                    "returns": [
                        {
                            "name": "metatable",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        91,
                        0
                    ],
                    "type": "function",
                    "view": "function getmetatable(object: any)\n  -> metatable: table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    91,
                    21
                ],
                "rawdesc": "\nIf object does not have a metatable, returns nil. Otherwise, if the object's metatable has a __metatable field, returns the associated value. Otherwise, returns the metatable of the given object.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-getmetatable\"])",
                "start": [
                    91,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "getmetatable",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\nhookmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                "finish": [
                    163,
                    8
                ],
                "rawdesc": "```lua\nhookmask:\n   +> \"c\" -- Calls hook when Lua calls a function.\n   +> \"r\" -- Calls hook when Lua returns from a function.\n   +> \"l\" -- Calls hook when Lua enters a new line of code.\n```",
                "start": [
                    160,
                    10
                ],
                "type": "doc.alias",
                "view": "string|\"c\"|\"l\"|\"r\""
            }
        ],
        "fields": [],
        "name": "hookmask",
        "type": "type",
        "view": "hookmask"
    },
    {
        "defines": [
            {
                "desc": "```lua\ninfowhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                "finish": [
                    63,
                    8
                ],
                "rawdesc": "```lua\ninfowhat:\n   +> \"n\" -- `name` and `namewhat`\n   +> \"S\" -- `source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`\n   +> \"l\" -- `currentline`\n   +> \"t\" -- `istailcall`\n   +> \"u\" -- `nups`, `nparams`, and `isvararg`\n   +> \"f\" -- `func`\n   +> \"L\" -- `activelines`\n```",
                "start": [
                    56,
                    10
                ],
                "type": "doc.alias",
                "view": "string|\"L\"|\"S\"|\"f\"|\"l\"...(+3)"
            }
        ],
        "fields": [],
        "name": "infowhat",
        "type": "type",
        "view": "infowhat"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            9,
                            25
                        ],
                        "start": [
                            9,
                            19
                        ],
                        "type": "doc.extends.name",
                        "view": "number"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    9,
                    25
                ],
                "start": [
                    9,
                    10
                ],
                "type": "doc.class",
                "view": "integer",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "integer",
        "type": "type",
        "view": "integer"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io\"])\n",
                    "finish": [
                        26,
                        7
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io\"])\n",
                    "start": [
                        26,
                        5
                    ],
                    "type": "table",
                    "view": "iolib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    26,
                    2
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io\"])\n",
                "start": [
                    26,
                    0
                ],
                "type": "setglobal",
                "view": "iolib",
                "visible": "public"
            }
        ],
        "name": "io",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                51,
                                22
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                51,
                                18
                            ],
                            "type": "local",
                            "view": "file*?"
                        }
                    ],
                    "desc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "finish": [
                        51,
                        27
                    ],
                    "rawdesc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean?"
                        },
                        {
                            "name": "exitcode",
                            "type": "function.return",
                            "view": "(\"exit\"|\"signal\")?"
                        },
                        {
                            "name": "code",
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        51,
                        0
                    ],
                    "type": "function",
                    "view": "function io.close(file?: file*)\n  -> suc: boolean?\n  2. exitcode: (\"exit\"|\"signal\")?\n  3. code: integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    51,
                    17
                ],
                "name": "close",
                "rawdesc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "start": [
                    51,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.close",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                "extends": {
                    "args": [],
                    "desc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                    "finish": [
                        58,
                        23
                    ],
                    "rawdesc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function io.flush()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    58,
                    17
                ],
                "name": "flush",
                "rawdesc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.flush",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                67,
                                22
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                67,
                                18
                            ],
                            "type": "local",
                            "view": "string|file*"
                        }
                    ],
                    "desc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                    "finish": [
                        67,
                        27
                    ],
                    "rawdesc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                    "start": [
                        67,
                        0
                    ],
                    "type": "function",
                    "view": "function io.input(file: string|file*)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    67,
                    17
                ],
                "name": "input",
                "rawdesc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                "start": [
                    67,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.input",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                83,
                                26
                            ],
                            "name": "filename",
                            "start": [
                                83,
                                18
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                83,
                                31
                            ],
                            "start": [
                                83,
                                28
                            ],
                            "type": "...",
                            "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
                        }
                    ],
                    "desc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "finish": [
                        83,
                        36
                    ],
                    "rawdesc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():any, ...unknown"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function io.lines(filename?: string, ...string|integer|\"*L\"|\"*a\"|\"*l\"...(+1))\n  -> fun():any, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    83,
                    17
                ],
                "name": "lines",
                "rawdesc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.lines",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                95,
                                25
                            ],
                            "name": "filename",
                            "start": [
                                95,
                                17
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                95,
                                31
                            ],
                            "name": "mode",
                            "start": [
                                95,
                                27
                            ],
                            "type": "local",
                            "view": "(\"a\"|\"a+\"|\"a+b\"|\"ab\"|\"r\"...(+7))?"
                        }
                    ],
                    "desc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                    "finish": [
                        95,
                        36
                    ],
                    "rawdesc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        95,
                        0
                    ],
                    "type": "function",
                    "view": "function io.open(filename: string, mode?: \"a\"|\"a+\"|\"a+b\"|\"ab\"|\"r\"...(+7))\n  -> file*?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    95,
                    16
                ],
                "name": "open",
                "rawdesc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                "start": [
                    95,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.open",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                104,
                                23
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                104,
                                19
                            ],
                            "type": "local",
                            "view": "string|file*"
                        }
                    ],
                    "desc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                    "finish": [
                        104,
                        28
                    ],
                    "rawdesc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function io.output(file: string|file*)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    104,
                    18
                ],
                "name": "output",
                "rawdesc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.output",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                119,
                                22
                            ],
                            "name": "prog",
                            "start": [
                                119,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                119,
                                28
                            ],
                            "name": "mode",
                            "start": [
                                119,
                                24
                            ],
                            "type": "local",
                            "view": "(\"r\"|\"w\")?"
                        }
                    ],
                    "desc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                    "finish": [
                        119,
                        33
                    ],
                    "rawdesc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        119,
                        0
                    ],
                    "type": "function",
                    "view": "function io.popen(prog: string, mode?: \"r\"|\"w\")\n  -> file*?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    119,
                    17
                ],
                "name": "popen",
                "rawdesc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                "start": [
                    119,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.popen",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                130,
                                20
                            ],
                            "start": [
                                130,
                                17
                            ],
                            "type": "...",
                            "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
                        }
                    ],
                    "desc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "finish": [
                        130,
                        25
                    ],
                    "rawdesc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        130,
                        0
                    ],
                    "type": "function",
                    "view": "function io.read(...string|integer|\"*L\"|\"*a\"|\"*l\"...(+1))\n  -> any\n  2. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    130,
                    16
                ],
                "name": "read",
                "rawdesc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    130,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.read",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                "extends": {
                    "args": [],
                    "desc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                    "finish": [
                        139,
                        25
                    ],
                    "rawdesc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*"
                        }
                    ],
                    "start": [
                        139,
                        0
                    ],
                    "type": "function",
                    "view": "function io.tmpfile()\n  -> file*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    139,
                    19
                ],
                "name": "tmpfile",
                "rawdesc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                "start": [
                    139,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.tmpfile",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                154,
                                21
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                154,
                                17
                            ],
                            "type": "local",
                            "view": "file*"
                        }
                    ],
                    "desc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                    "finish": [
                        154,
                        26
                    ],
                    "rawdesc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"closed file\"|\"file\"|`nil`"
                        }
                    ],
                    "start": [
                        154,
                        0
                    ],
                    "type": "function",
                    "view": "function io.type(file: file*)\n  -> \"closed file\"|\"file\"|`nil`"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    154,
                    16
                ],
                "name": "type",
                "rawdesc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                "start": [
                    154,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.type",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                163,
                                21
                            ],
                            "start": [
                                163,
                                18
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                    "finish": [
                        163,
                        26
                    ],
                    "rawdesc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "function io.write(...any)\n  -> file*\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    163,
                    17
                ],
                "name": "write",
                "rawdesc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                "start": [
                    163,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "io.write",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    7,
                    15
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "iolib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                51,
                                22
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                51,
                                18
                            ],
                            "type": "local",
                            "view": "file*?"
                        }
                    ],
                    "desc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "finish": [
                        51,
                        27
                    ],
                    "rawdesc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean?"
                        },
                        {
                            "name": "exitcode",
                            "type": "function.return",
                            "view": "(\"exit\"|\"signal\")?"
                        },
                        {
                            "name": "code",
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        51,
                        0
                    ],
                    "type": "function",
                    "view": "function io.close(file?: file*)\n  -> suc: boolean?\n  2. exitcode: (\"exit\"|\"signal\")?\n  3. code: integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    51,
                    17
                ],
                "name": "close",
                "rawdesc": "\nClose `file` or default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.close\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "start": [
                    51,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                "extends": {
                    "args": [],
                    "desc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                    "finish": [
                        58,
                        23
                    ],
                    "rawdesc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function io.flush()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    58,
                    17
                ],
                "name": "flush",
                "rawdesc": "\nSaves any written data to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.flush\"])",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                67,
                                22
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                67,
                                18
                            ],
                            "type": "local",
                            "view": "string|file*"
                        }
                    ],
                    "desc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                    "finish": [
                        67,
                        27
                    ],
                    "rawdesc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                    "start": [
                        67,
                        0
                    ],
                    "type": "function",
                    "view": "function io.input(file: string|file*)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    67,
                    17
                ],
                "name": "input",
                "rawdesc": "\nSets `file` as the default input file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.input\"])",
                "start": [
                    67,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                83,
                                26
                            ],
                            "name": "filename",
                            "start": [
                                83,
                                18
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                83,
                                31
                            ],
                            "start": [
                                83,
                                28
                            ],
                            "type": "...",
                            "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
                        }
                    ],
                    "desc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "finish": [
                        83,
                        36
                    ],
                    "rawdesc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():any, ...unknown"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function io.lines(filename?: string, ...string|integer|\"*L\"|\"*a\"|\"*l\"...(+1))\n  -> fun():any, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    83,
                    17
                ],
                "name": "lines",
                "rawdesc": "\n------\n```lua\nfor c in io.lines(filename, ...) do\n    body\nend\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.lines\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                95,
                                25
                            ],
                            "name": "filename",
                            "start": [
                                95,
                                17
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                95,
                                31
                            ],
                            "name": "mode",
                            "start": [
                                95,
                                27
                            ],
                            "type": "local",
                            "view": "(\"a\"|\"a+\"|\"a+b\"|\"ab\"|\"r\"...(+7))?"
                        }
                    ],
                    "desc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                    "finish": [
                        95,
                        36
                    ],
                    "rawdesc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        95,
                        0
                    ],
                    "type": "function",
                    "view": "function io.open(filename: string, mode?: \"a\"|\"a+\"|\"a+b\"|\"ab\"|\"r\"...(+7))\n  -> file*?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    95,
                    16
                ],
                "name": "open",
                "rawdesc": "\nOpens a file, in the mode specified in the string `mode`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.open\"])\n\n\n```lua\nmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                "start": [
                    95,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                104,
                                23
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                104,
                                19
                            ],
                            "type": "local",
                            "view": "string|file*"
                        }
                    ],
                    "desc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                    "finish": [
                        104,
                        28
                    ],
                    "rawdesc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function io.output(file: string|file*)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    104,
                    18
                ],
                "name": "output",
                "rawdesc": "\nSets `file` as the default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.output\"])",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                119,
                                22
                            ],
                            "name": "prog",
                            "start": [
                                119,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                119,
                                28
                            ],
                            "name": "mode",
                            "start": [
                                119,
                                24
                            ],
                            "type": "local",
                            "view": "(\"r\"|\"w\")?"
                        }
                    ],
                    "desc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                    "finish": [
                        119,
                        33
                    ],
                    "rawdesc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        119,
                        0
                    ],
                    "type": "function",
                    "view": "function io.popen(prog: string, mode?: \"r\"|\"w\")\n  -> file*?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    119,
                    17
                ],
                "name": "popen",
                "rawdesc": "\nStarts program prog in a separated process.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.popen\"])\n\n\n```lua\nmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                "start": [
                    119,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                130,
                                20
                            ],
                            "start": [
                                130,
                                17
                            ],
                            "type": "...",
                            "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
                        }
                    ],
                    "desc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "finish": [
                        130,
                        25
                    ],
                    "rawdesc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        130,
                        0
                    ],
                    "type": "function",
                    "view": "function io.read(...string|integer|\"*L\"|\"*a\"|\"*l\"...(+1))\n  -> any\n  2. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    130,
                    16
                ],
                "name": "read",
                "rawdesc": "\nReads the `file`, according to the given formats, which specify what to read.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.read\"])\n\n\n```lua\n...(param):\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    130,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nstandard error.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.stderr\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                    "finish": [
                        25,
                        22
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                    "start": [
                        25,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                25,
                                22
                            ],
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                25,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "file*"
                        }
                    ],
                    "view": "file*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    25,
                    22
                ],
                "name": "stderr",
                "rawdesc": "\nstandard error.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.stderr\"])\n",
                "start": [
                    25,
                    10
                ],
                "type": "doc.field",
                "view": "file*",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nstandard input.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.stdin\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                    "finish": [
                        13,
                        22
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                    "start": [
                        13,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                13,
                                22
                            ],
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                13,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "file*"
                        }
                    ],
                    "view": "file*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    13,
                    22
                ],
                "name": "stdin",
                "rawdesc": "\nstandard input.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.stdin\"])\n",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "file*",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nstandard output.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.stdout\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                    "finish": [
                        19,
                        22
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                    "start": [
                        19,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                19,
                                22
                            ],
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                19,
                                17
                            ],
                            "type": "doc.type.name",
                            "view": "file*"
                        }
                    ],
                    "view": "file*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    19,
                    22
                ],
                "name": "stdout",
                "rawdesc": "\nstandard output.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.stdout\"])\n",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "file*",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                "extends": {
                    "args": [],
                    "desc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                    "finish": [
                        139,
                        25
                    ],
                    "rawdesc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*"
                        }
                    ],
                    "start": [
                        139,
                        0
                    ],
                    "type": "function",
                    "view": "function io.tmpfile()\n  -> file*"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    139,
                    19
                ],
                "name": "tmpfile",
                "rawdesc": "\nIn case of success, returns a handle for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.tmpfile\"])",
                "start": [
                    139,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "finish": [
                                154,
                                21
                            ],
                            "name": "file",
                            "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-file\"])\n",
                            "start": [
                                154,
                                17
                            ],
                            "type": "local",
                            "view": "file*"
                        }
                    ],
                    "desc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                    "finish": [
                        154,
                        26
                    ],
                    "rawdesc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"closed file\"|\"file\"|`nil`"
                        }
                    ],
                    "start": [
                        154,
                        0
                    ],
                    "type": "function",
                    "view": "function io.type(file: file*)\n  -> \"closed file\"|\"file\"|`nil`"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    154,
                    16
                ],
                "name": "type",
                "rawdesc": "\nChecks whether `obj` is a valid file handle.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.type\"])\n\n\n```lua\nreturn #1:\n    | \"file\" -- Is an open file handle.\n    | \"closed file\" -- Is a closed file handle.\n    | `nil` -- Is not a file handle.\n```",
                "start": [
                    154,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                163,
                                21
                            ],
                            "start": [
                                163,
                                18
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                    "finish": [
                        163,
                        26
                    ],
                    "rawdesc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "file*"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "function io.write(...any)\n  -> file*\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/io.lua",
                "finish": [
                    163,
                    17
                ],
                "name": "write",
                "rawdesc": "\nWrites the value of each of its arguments to default output file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-io.write\"])",
                "start": [
                    163,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "iolib",
        "type": "type",
        "view": "iolib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns three values (an iterator function, the table `t`, and `0`) so that the construction\n```lua\n    for i,v in ipairs(t) do body end\n```\nwill iterate over the key–value pairs `(1,t[1]), (2,t[2]), ...`, up to the first absent index.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-ipairs\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                108,
                                17
                            ],
                            "name": "t",
                            "start": [
                                108,
                                16
                            ],
                            "type": "local",
                            "view": "<T:table>"
                        }
                    ],
                    "desc": "\nReturns three values (an iterator function, the table `t`, and `0`) so that the construction\n```lua\n    for i,v in ipairs(t) do body end\n```\nwill iterate over the key–value pairs `(1,t[1]), (2,t[2]), ...`, up to the first absent index.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-ipairs\"])",
                    "finish": [
                        108,
                        22
                    ],
                    "rawdesc": "\nReturns three values (an iterator function, the table `t`, and `0`) so that the construction\n```lua\n    for i,v in ipairs(t) do body end\n```\nwill iterate over the key–value pairs `(1,t[1]), (2,t[2]), ...`, up to the first absent index.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-ipairs\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun(table: <V>[], i?: integer):integer, <V>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T:table>"
                        },
                        {
                            "name": "i",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "function ipairs(t: <T:table>)\n  -> fun(table: <V>[], i?: integer):integer, <V>\n  2. <T:table>\n  3. i: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    108,
                    15
                ],
                "rawdesc": "\nReturns three values (an iterator function, the table `t`, and `0`) so that the construction\n```lua\n    for i,v in ipairs(t) do body end\n```\nwill iterate over the key–value pairs `(1,t[1]), (2,t[2]), ...`, up to the first absent index.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-ipairs\"])",
                "start": [
                    108,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "ipairs",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        8,
                        8
                    ],
                    "start": [
                        8,
                        6
                    ],
                    "type": "table",
                    "view": "jitlib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    8,
                    3
                ],
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "jitlib",
                "visible": "public"
            }
        ],
        "name": "jit",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                26,
                                23
                            ],
                            "name": "func",
                            "start": [
                                26,
                                19
                            ],
                            "type": "local",
                            "view": "boolean|function"
                        },
                        {
                            "finish": [
                                26,
                                34
                            ],
                            "name": "recursive",
                            "start": [
                                26,
                                25
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        27,
                        3
                    ],
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.flush(func: boolean|function, recursive?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    26,
                    18
                ],
                "name": "flush",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "jit.flush",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    26,
                    24
                ],
                "start": [
                    26,
                    10
                ],
                "type": "doc.class",
                "view": "jit.funcinfo.c",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        27,
                        26
                    ],
                    "start": [
                        27,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                27,
                                22
                            ],
                            "start": [
                                27,
                                15
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                27,
                                26
                            ],
                            "start": [
                                27,
                                23
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "integer|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    27,
                    26
                ],
                "name": "ffid",
                "start": [
                    27,
                    10
                ],
                "type": "doc.field",
                "view": "integer|nil",
                "visible": "public"
            }
        ],
        "name": "jit.funcinfo.c",
        "type": "type",
        "view": "jit.funcinfo.c"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    7,
                    26
                ],
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "jit.funcinfo.lua",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "jit.funcinfo.lua",
        "type": "type",
        "view": "jit.funcinfo.lua"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                19,
                                21
                            ],
                            "name": "func",
                            "start": [
                                19,
                                17
                            ],
                            "type": "local",
                            "view": "boolean|function"
                        },
                        {
                            "finish": [
                                19,
                                32
                            ],
                            "name": "recursive",
                            "start": [
                                19,
                                23
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        20,
                        3
                    ],
                    "start": [
                        19,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.off(func: boolean|function, recursive?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    19,
                    16
                ],
                "name": "off",
                "start": [
                    19,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "jit.off",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                13,
                                20
                            ],
                            "name": "func",
                            "start": [
                                13,
                                16
                            ],
                            "type": "local",
                            "view": "boolean|function"
                        },
                        {
                            "finish": [
                                13,
                                31
                            ],
                            "name": "recursive",
                            "start": [
                                13,
                                22
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        14,
                        3
                    ],
                    "start": [
                        13,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.on(func: boolean|function, recursive?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    13,
                    15
                ],
                "name": "on",
                "start": [
                    13,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "jit.on",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        35,
                        12
                    ],
                    "start": [
                        35,
                        10
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    35,
                    7
                ],
                "name": "opt",
                "start": [
                    35,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            }
        ],
        "name": "jit.opt",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "@*param* `...` — flags",
                "extends": {
                    "args": [
                        {
                            "desc": "flags",
                            "finish": [
                                38,
                                26
                            ],
                            "rawdesc": "flags",
                            "start": [
                                38,
                                23
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "@*param* `...` — flags",
                    "finish": [
                        39,
                        3
                    ],
                    "start": [
                        38,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.opt.start(...any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    38,
                    22
                ],
                "name": "start",
                "start": [
                    38,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "jit.opt.start",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            91,
                            28
                        ],
                        "start": [
                            91,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "integer"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    91,
                    28
                ],
                "start": [
                    91,
                    10
                ],
                "type": "doc.class",
                "view": "jit.snap",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "jit.snap",
        "type": "type",
        "view": "jit.snap"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [],
                    "finish": [
                        33,
                        3
                    ],
                    "returns": [
                        {
                            "name": "status",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.status()\n  -> status: boolean\n  2. ...string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    32,
                    19
                ],
                "name": "status",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "jit.status",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit/util.lua",
                "finish": [
                    59,
                    23
                ],
                "start": [
                    59,
                    10
                ],
                "type": "doc.class",
                "view": "jit.traceinfo",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "jit.traceinfo",
        "type": "type",
        "view": "jit.traceinfo"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    3,
                    16
                ],
                "start": [
                    3,
                    10
                ],
                "type": "doc.class",
                "view": "jitlib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        7,
                        124
                    ],
                    "start": [
                        7,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                7,
                                27
                            ],
                            "start": [
                                7,
                                22
                            ],
                            "type": "doc.type.string",
                            "view": "'x86'"
                        },
                        {
                            "finish": [
                                7,
                                33
                            ],
                            "start": [
                                7,
                                28
                            ],
                            "type": "doc.type.string",
                            "view": "'x64'"
                        },
                        {
                            "finish": [
                                7,
                                39
                            ],
                            "start": [
                                7,
                                34
                            ],
                            "type": "doc.type.string",
                            "view": "'arm'"
                        },
                        {
                            "finish": [
                                7,
                                47
                            ],
                            "start": [
                                7,
                                40
                            ],
                            "type": "doc.type.string",
                            "view": "'arm64'"
                        },
                        {
                            "finish": [
                                7,
                                57
                            ],
                            "start": [
                                7,
                                48
                            ],
                            "type": "doc.type.string",
                            "view": "'arm64be'"
                        },
                        {
                            "finish": [
                                7,
                                63
                            ],
                            "start": [
                                7,
                                58
                            ],
                            "type": "doc.type.string",
                            "view": "'ppc'"
                        },
                        {
                            "finish": [
                                7,
                                71
                            ],
                            "start": [
                                7,
                                64
                            ],
                            "type": "doc.type.string",
                            "view": "'ppc64'"
                        },
                        {
                            "finish": [
                                7,
                                81
                            ],
                            "start": [
                                7,
                                72
                            ],
                            "type": "doc.type.string",
                            "view": "'ppc64le'"
                        },
                        {
                            "finish": [
                                7,
                                88
                            ],
                            "start": [
                                7,
                                82
                            ],
                            "type": "doc.type.string",
                            "view": "'mips'"
                        },
                        {
                            "finish": [
                                7,
                                97
                            ],
                            "start": [
                                7,
                                89
                            ],
                            "type": "doc.type.string",
                            "view": "'mipsel'"
                        },
                        {
                            "finish": [
                                7,
                                106
                            ],
                            "start": [
                                7,
                                98
                            ],
                            "type": "doc.type.string",
                            "view": "'mips64'"
                        },
                        {
                            "finish": [
                                7,
                                117
                            ],
                            "start": [
                                7,
                                107
                            ],
                            "type": "doc.type.string",
                            "view": "'mips64el'"
                        },
                        {
                            "finish": [
                                7,
                                124
                            ],
                            "start": [
                                7,
                                118
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|'arm'|'arm64'|'arm64be'|'mips'...(+8)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    7,
                    124
                ],
                "name": "arch",
                "start": [
                    7,
                    10
                ],
                "type": "doc.field",
                "view": "string|'arm'|'arm64'|'arm64be'|'mips'...(+8)",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                26,
                                23
                            ],
                            "name": "func",
                            "start": [
                                26,
                                19
                            ],
                            "type": "local",
                            "view": "boolean|function"
                        },
                        {
                            "finish": [
                                26,
                                34
                            ],
                            "name": "recursive",
                            "start": [
                                26,
                                25
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        27,
                        3
                    ],
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.flush(func: boolean|function, recursive?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    26,
                    18
                ],
                "name": "flush",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                19,
                                21
                            ],
                            "name": "func",
                            "start": [
                                19,
                                17
                            ],
                            "type": "local",
                            "view": "boolean|function"
                        },
                        {
                            "finish": [
                                19,
                                32
                            ],
                            "name": "recursive",
                            "start": [
                                19,
                                23
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        20,
                        3
                    ],
                    "start": [
                        19,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.off(func: boolean|function, recursive?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    19,
                    16
                ],
                "name": "off",
                "start": [
                    19,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                13,
                                20
                            ],
                            "name": "func",
                            "start": [
                                13,
                                16
                            ],
                            "type": "local",
                            "view": "boolean|function"
                        },
                        {
                            "finish": [
                                13,
                                31
                            ],
                            "name": "recursive",
                            "start": [
                                13,
                                22
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "finish": [
                        14,
                        3
                    ],
                    "start": [
                        13,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.on(func: boolean|function, recursive?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    13,
                    15
                ],
                "name": "on",
                "start": [
                    13,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        35,
                        12
                    ],
                    "start": [
                        35,
                        10
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    35,
                    7
                ],
                "name": "opt",
                "start": [
                    35,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        6,
                        67
                    ],
                    "start": [
                        6,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                6,
                                31
                            ],
                            "start": [
                                6,
                                22
                            ],
                            "type": "doc.type.string",
                            "view": "'Windows'"
                        },
                        {
                            "finish": [
                                6,
                                39
                            ],
                            "start": [
                                6,
                                32
                            ],
                            "type": "doc.type.string",
                            "view": "'Linux'"
                        },
                        {
                            "finish": [
                                6,
                                45
                            ],
                            "start": [
                                6,
                                40
                            ],
                            "type": "doc.type.string",
                            "view": "'OSX'"
                        },
                        {
                            "finish": [
                                6,
                                51
                            ],
                            "start": [
                                6,
                                46
                            ],
                            "type": "doc.type.string",
                            "view": "'BSD'"
                        },
                        {
                            "finish": [
                                6,
                                59
                            ],
                            "start": [
                                6,
                                52
                            ],
                            "type": "doc.type.string",
                            "view": "'POSIX'"
                        },
                        {
                            "finish": [
                                6,
                                67
                            ],
                            "start": [
                                6,
                                60
                            ],
                            "type": "doc.type.string",
                            "view": "'Other'"
                        }
                    ],
                    "view": "'BSD'|'Linux'|'OSX'|'Other'|'POSIX'...(+1)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    6,
                    67
                ],
                "name": "os",
                "start": [
                    6,
                    10
                ],
                "type": "doc.field",
                "view": "'BSD'|'Linux'|'OSX'|'Other'|'POSIX'...(+1)",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [],
                    "finish": [
                        33,
                        3
                    ],
                    "returns": [
                        {
                            "name": "status",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function jit.status()\n  -> status: boolean\n  2. ...string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    32,
                    19
                ],
                "name": "status",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        4,
                        28
                    ],
                    "start": [
                        4,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                4,
                                28
                            ],
                            "start": [
                                4,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    4,
                    28
                ],
                "name": "version",
                "start": [
                    4,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        5,
                        28
                    ],
                    "start": [
                        5,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                5,
                                28
                            ],
                            "start": [
                                5,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/jit.lua",
                "finish": [
                    5,
                    28
                ],
                "name": "version_num",
                "start": [
                    5,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            }
        ],
        "name": "jitlib",
        "type": "type",
        "view": "jitlib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    14,
                    23
                ],
                "start": [
                    14,
                    10
                ],
                "type": "doc.class",
                "view": "lightuserdata",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "lightuserdata",
        "type": "type",
        "view": "lightuserdata"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a chunk.\n\nIf `chunk` is a string, the chunk is this string. If `chunk` is a function, `load` calls it repeatedly to get the chunk pieces. Each call to `chunk` must return a string that concatenates with previous results. A return of an empty string, `nil`, or no value signals the end of the chunk.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-load\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                130,
                                19
                            ],
                            "name": "chunk",
                            "start": [
                                130,
                                14
                            ],
                            "type": "local",
                            "view": "string|function"
                        },
                        {
                            "finish": [
                                130,
                                30
                            ],
                            "name": "chunkname",
                            "start": [
                                130,
                                21
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                130,
                                36
                            ],
                            "name": "mode",
                            "start": [
                                130,
                                32
                            ],
                            "type": "local",
                            "view": "(\"b\"|\"bt\"|\"t\")?"
                        },
                        {
                            "finish": [
                                130,
                                41
                            ],
                            "name": "env",
                            "start": [
                                130,
                                38
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "\nLoads a chunk.\n\nIf `chunk` is a string, the chunk is this string. If `chunk` is a function, `load` calls it repeatedly to get the chunk pieces. Each call to `chunk` must return a string that concatenates with previous results. A return of an empty string, `nil`, or no value signals the end of the chunk.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-load\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                    "finish": [
                        130,
                        46
                    ],
                    "rawdesc": "\nLoads a chunk.\n\nIf `chunk` is a string, the chunk is this string. If `chunk` is a function, `load` calls it repeatedly to get the chunk pieces. Each call to `chunk` must return a string that concatenates with previous results. A return of an empty string, `nil`, or no value signals the end of the chunk.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-load\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "function?"
                        },
                        {
                            "name": "error_message",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        130,
                        0
                    ],
                    "type": "function",
                    "view": "function load(chunk: string|function, chunkname?: string, mode?: \"b\"|\"bt\"|\"t\", env?: table)\n  -> function?\n  2. error_message: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    130,
                    13
                ],
                "rawdesc": "\nLoads a chunk.\n\nIf `chunk` is a string, the chunk is this string. If `chunk` is a function, `load` calls it repeatedly to get the chunk pieces. Each call to `chunk` must return a string that concatenates with previous results. A return of an empty string, `nil`, or no value signals the end of the chunk.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-load\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                "start": [
                    130,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "load",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a chunk from file `filename` or from the standard input, if no file name is given.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadfile\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                143,
                                26
                            ],
                            "name": "filename",
                            "start": [
                                143,
                                18
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                143,
                                32
                            ],
                            "name": "mode",
                            "start": [
                                143,
                                28
                            ],
                            "type": "local",
                            "view": "(\"b\"|\"bt\"|\"t\")?"
                        },
                        {
                            "finish": [
                                143,
                                37
                            ],
                            "name": "env",
                            "start": [
                                143,
                                34
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "\nLoads a chunk from file `filename` or from the standard input, if no file name is given.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadfile\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                    "finish": [
                        143,
                        42
                    ],
                    "rawdesc": "\nLoads a chunk from file `filename` or from the standard input, if no file name is given.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadfile\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "function?"
                        },
                        {
                            "name": "error_message",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        143,
                        0
                    ],
                    "type": "function",
                    "view": "function loadfile(filename?: string, mode?: \"b\"|\"bt\"|\"t\", env?: table)\n  -> function?\n  2. error_message: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    143,
                    17
                ],
                "rawdesc": "\nLoads a chunk from file `filename` or from the standard input, if no file name is given.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadfile\"])\n\n\n```lua\nmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                "start": [
                    143,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "loadfile",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\nloadmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                "finish": [
                    113,
                    9
                ],
                "rawdesc": "```lua\nloadmode:\n    | \"b\" -- Only binary chunks.\n    | \"t\" -- Only text chunks.\n   -> \"bt\" -- Both binary and text.\n```",
                "start": [
                    110,
                    10
                ],
                "type": "doc.alias",
                "view": "\"b\"|\"bt\"|\"t\""
            }
        ],
        "fields": [],
        "name": "loadmode",
        "type": "type",
        "view": "loadmode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a chunk from the given string.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadstring\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                156,
                                24
                            ],
                            "name": "text",
                            "start": [
                                156,
                                20
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                156,
                                35
                            ],
                            "name": "chunkname",
                            "start": [
                                156,
                                26
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nLoads a chunk from the given string.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadstring\"])",
                    "finish": [
                        156,
                        40
                    ],
                    "rawdesc": "\nLoads a chunk from the given string.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadstring\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "function?"
                        },
                        {
                            "name": "error_message",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        156,
                        0
                    ],
                    "type": "function",
                    "view": "function loadstring(text: string, chunkname?: string)\n  -> function?\n  2. error_message: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    156,
                    19
                ],
                "rawdesc": "\nLoads a chunk from the given string.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-loadstring\"])",
                "start": [
                    156,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "loadstring",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\nlocalecategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                "finish": [
                    154,
                    11
                ],
                "rawdesc": "```lua\nlocalecategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                "start": [
                    148,
                    10
                ],
                "type": "doc.alias",
                "view": "\"all\"|\"collate\"|\"ctype\"|\"monetary\"|\"numeric\"...(+1)"
            }
        ],
        "fields": [],
        "name": "localecategory",
        "type": "type",
        "view": "localecategory"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " version: 11.5\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "extends": {
                    "desc": " version: 11.5\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                    "finish": [
                        7,
                        9
                    ],
                    "rawdesc": " version: 11.5\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                    "start": [
                        7,
                        7
                    ],
                    "type": "table",
                    "view": "love"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    7,
                    4
                ],
                "rawdesc": " version: 11.5\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "start": [
                    7,
                    0
                ],
                "type": "setglobal",
                "view": "love",
                "visible": "public"
            }
        ],
        "name": "love",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " version: 11.5\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    6,
                    14
                ],
                "rawdesc": " version: 11.5\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "start": [
                    6,
                    10
                ],
                "type": "doc.class",
                "view": "love",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "extends": {
                    "desc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.audio"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "audio",
                "rawdesc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.audio",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "extends": {
                    "desc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                    "finish": [
                        9,
                        14
                    ],
                    "rawdesc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                    "start": [
                        9,
                        12
                    ],
                    "type": "table",
                    "view": "love.data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    9,
                    9
                ],
                "name": "data",
                "rawdesc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.data",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                "extends": {
                    "desc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.event"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "event",
                "rawdesc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.event",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                    "finish": [
                        9,
                        20
                    ],
                    "rawdesc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                    "start": [
                        9,
                        18
                    ],
                    "type": "table",
                    "view": "love.filesystem"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    9,
                    15
                ],
                "name": "filesystem",
                "rawdesc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.filesystem",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "extends": {
                    "desc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                    "finish": [
                        9,
                        14
                    ],
                    "rawdesc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                    "start": [
                        9,
                        12
                    ],
                    "type": "table",
                    "view": "love.font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    9,
                    9
                ],
                "name": "font",
                "rawdesc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.font",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)\n\n@*return* `major` — The major version of LÖVE, i.e. 0 for version 0.9.1.\n\n@*return* `minor` — The minor version of LÖVE, i.e. 9 for version 0.9.1.\n\n@*return* `revision` — The revision version of LÖVE, i.e. 1 for version 0.9.1.\n\n@*return* `codename` — The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)\n\n@*return* `major` — The major version of LÖVE, i.e. 0 for version 0.9.1.\n\n@*return* `minor` — The minor version of LÖVE, i.e. 9 for version 0.9.1.\n\n@*return* `revision` — The revision version of LÖVE, i.e. 1 for version 0.9.1.\n\n@*return* `codename` — The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                    "finish": [
                        19,
                        30
                    ],
                    "rawdesc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)",
                    "returns": [
                        {
                            "desc": "The major version of LÖVE, i.e. 0 for version 0.9.1.",
                            "name": "major",
                            "rawdesc": "The major version of LÖVE, i.e. 0 for version 0.9.1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The minor version of LÖVE, i.e. 9 for version 0.9.1.",
                            "name": "minor",
                            "rawdesc": "The minor version of LÖVE, i.e. 9 for version 0.9.1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The revision version of LÖVE, i.e. 1 for version 0.9.1.",
                            "name": "revision",
                            "rawdesc": "The revision version of LÖVE, i.e. 1 for version 0.9.1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                            "name": "codename",
                            "rawdesc": "The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        19,
                        0
                    ],
                    "type": "function",
                    "view": "function love.getVersion()\n  -> major: number\n  2. minor: number\n  3. revision: number\n  4. codename: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    19,
                    24
                ],
                "name": "getVersion",
                "rawdesc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)",
                "start": [
                    19,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "desc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        15,
                        18
                    ],
                    "rawdesc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        15,
                        16
                    ],
                    "type": "table",
                    "view": "love.graphics"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    15,
                    13
                ],
                "name": "graphics",
                "rawdesc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    15,
                    0
                ],
                "type": "setfield",
                "view": "love.graphics",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)\n\n@*return* `enabled` — Whether deprecation output is enabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)\n\n@*return* `enabled` — Whether deprecation output is enabled.",
                    "finish": [
                        30,
                        40
                    ],
                    "rawdesc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)",
                    "returns": [
                        {
                            "desc": "Whether deprecation output is enabled.",
                            "name": "enabled",
                            "rawdesc": "Whether deprecation output is enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        30,
                        0
                    ],
                    "type": "function",
                    "view": "function love.hasDeprecationOutput()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    30,
                    34
                ],
                "name": "hasDeprecationOutput",
                "rawdesc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)",
                "start": [
                    30,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "extends": {
                    "desc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "image",
                "rawdesc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.image",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)\n\n\n---\n\n@*param* `version` — The version to check (for example '11.3' or '0.10.2').\n\n@*return* `compatible` — Whether the given version is compatible with the current running version of LÖVE.",
                "extends": {
                    "args": [
                        {
                            "desc": "The version to check (for example '11.3' or '0.10.2').",
                            "finish": [
                                41,
                                41
                            ],
                            "name": "version",
                            "rawdesc": "The version to check (for example '11.3' or '0.10.2').",
                            "start": [
                                41,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)\n\n\n---\n\n@*param* `version` — The version to check (for example '11.3' or '0.10.2').\n\n@*return* `compatible` — Whether the given version is compatible with the current running version of LÖVE.",
                    "finish": [
                        41,
                        46
                    ],
                    "rawdesc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)",
                    "returns": [
                        {
                            "desc": "Whether the given version is compatible with the current running version of LÖVE.",
                            "name": "compatible",
                            "rawdesc": "Whether the given version is compatible with the current running version of LÖVE.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function love.isVersionCompatible(version: string)\n  -> compatible: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    41,
                    33
                ],
                "name": "isVersionCompatible",
                "rawdesc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                    "finish": [
                        9,
                        18
                    ],
                    "rawdesc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                    "start": [
                        9,
                        16
                    ],
                    "type": "table",
                    "view": "love.joystick"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    9,
                    13
                ],
                "name": "joystick",
                "rawdesc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.joystick",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                    "finish": [
                        9,
                        18
                    ],
                    "rawdesc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                    "start": [
                        9,
                        16
                    ],
                    "type": "table",
                    "view": "love.keyboard"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    9,
                    13
                ],
                "name": "keyboard",
                "rawdesc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.keyboard",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "extends": {
                    "desc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                    "finish": [
                        9,
                        14
                    ],
                    "rawdesc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                    "start": [
                        9,
                        12
                    ],
                    "type": "table",
                    "view": "love.math"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    9,
                    9
                ],
                "name": "math",
                "rawdesc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.math",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.mouse"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "mouse",
                "rawdesc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.mouse",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": {
                    "desc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                    "finish": [
                        9,
                        17
                    ],
                    "rawdesc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                    "start": [
                        9,
                        15
                    ],
                    "type": "table",
                    "view": "love.physics"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    9,
                    12
                ],
                "name": "physics",
                "rawdesc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.physics",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)\n\n@*param* `enable` — Whether to enable or disable deprecation output.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to enable or disable deprecation output.",
                            "finish": [
                                52,
                                41
                            ],
                            "name": "enable",
                            "rawdesc": "Whether to enable or disable deprecation output.",
                            "start": [
                                52,
                                35
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)\n\n@*param* `enable` — Whether to enable or disable deprecation output.",
                    "finish": [
                        52,
                        46
                    ],
                    "rawdesc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)",
                    "start": [
                        52,
                        0
                    ],
                    "type": "function",
                    "view": "function love.setDeprecationOutput(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    52,
                    34
                ],
                "name": "setDeprecationOutput",
                "rawdesc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)",
                "start": [
                    52,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "extends": {
                    "desc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.sound"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "sound",
                "rawdesc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.sound",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                "extends": {
                    "desc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                    "finish": [
                        9,
                        16
                    ],
                    "rawdesc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                    "start": [
                        9,
                        14
                    ],
                    "type": "table",
                    "view": "love.system"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    9,
                    11
                ],
                "name": "system",
                "rawdesc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.system",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "extends": {
                    "desc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                    "finish": [
                        15,
                        16
                    ],
                    "rawdesc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                    "start": [
                        15,
                        14
                    ],
                    "type": "table",
                    "view": "love.thread"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    15,
                    11
                ],
                "name": "thread",
                "rawdesc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "start": [
                    15,
                    0
                ],
                "type": "setfield",
                "view": "love.thread",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.timer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "timer",
                "rawdesc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.timer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                "extends": {
                    "desc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.touch"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "touch",
                "rawdesc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.touch",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "extends": {
                    "desc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                    "finish": [
                        11,
                        15
                    ],
                    "rawdesc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                    "start": [
                        11,
                        13
                    ],
                    "type": "table",
                    "view": "love.video"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    11,
                    10
                ],
                "name": "video",
                "rawdesc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "start": [
                    11,
                    0
                ],
                "type": "setfield",
                "view": "love.video",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                "extends": {
                    "desc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                    "finish": [
                        9,
                        16
                    ],
                    "rawdesc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                    "start": [
                        9,
                        14
                    ],
                    "type": "table",
                    "view": "love.window"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    9,
                    11
                ],
                "name": "window",
                "rawdesc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.window",
                "visible": "public"
            }
        ],
        "name": "love",
        "type": "type",
        "view": "love"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nlove.AlignMode:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "finish": [
                    3408,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nlove.AlignMode:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "start": [
                    3392,
                    10
                ],
                "type": "doc.alias",
                "view": "\"center\"|\"justify\"|\"left\"|\"right\""
            }
        ],
        "fields": [],
        "name": "love.AlignMode",
        "type": "type",
        "view": "love.AlignMode"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Different types of arcs that can be drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ArcType)\n-- \nlove.ArcType:\n    | \"pie\" -- The arc is drawn like a slice of pie, with the arc circle connected to the center at its end-points.\n    | \"open\" -- The arc circle's two end-points are unconnected when the arc is drawn as a line. Behaves like the \"closed\" arc type when the arc is drawn in filled mode.\n    | \"closed\" -- The arc circle's two end-points are connected to each other.\n```",
                "finish": [
                    3428,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Different types of arcs that can be drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ArcType)\n-- \nlove.ArcType:\n    | \"pie\" -- The arc is drawn like a slice of pie, with the arc circle connected to the center at its end-points.\n    | \"open\" -- The arc circle's two end-points are unconnected when the arc is drawn as a line. Behaves like the \"closed\" arc type when the arc is drawn in filled mode.\n    | \"closed\" -- The arc circle's two end-points are connected to each other.\n```",
                "start": [
                    3416,
                    10
                ],
                "type": "doc.alias",
                "view": "\"closed\"|\"open\"|\"pie\""
            }
        ],
        "fields": [],
        "name": "love.ArcType",
        "type": "type",
        "view": "love.ArcType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \nlove.AreaSpreadDistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                "finish": [
                    3460,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \nlove.AreaSpreadDistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                "start": [
                    3436,
                    10
                ],
                "type": "doc.alias",
                "view": "\"borderellipse\"|\"borderrectangle\"|\"ellipse\"|\"none\"|\"normal\"...(+1)"
            }
        ],
        "fields": [],
        "name": "love.AreaSpreadDistribution",
        "type": "type",
        "view": "love.AreaSpreadDistribution"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            234,
                            39
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            234,
                            28
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    234,
                    39
                ],
                "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "start": [
                    234,
                    10
                ],
                "type": "doc.class",
                "view": "love.BezierCurve",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEvaluate Bézier curve at parameter t. The parameter must be between 0 and 1 (inclusive).\n\nThis function can be used to move objects along paths or tween parameters. However it should not be used to render the curve, see BezierCurve:render for that purpose.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:evaluate)\n\n@*param* `t` — Where to evaluate the curve.\n\n@*return* `x` — x coordinate of the curve at parameter t.\n\n@*return* `y` — y coordinate of the curve at parameter t.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                248,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                248,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Where to evaluate the curve.",
                            "finish": [
                                248,
                                31
                            ],
                            "name": "t",
                            "rawdesc": "Where to evaluate the curve.",
                            "start": [
                                248,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nEvaluate Bézier curve at parameter t. The parameter must be between 0 and 1 (inclusive).\n\nThis function can be used to move objects along paths or tween parameters. However it should not be used to render the curve, see BezierCurve:render for that purpose.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:evaluate)\n\n@*param* `t` — Where to evaluate the curve.\n\n@*return* `x` — x coordinate of the curve at parameter t.\n\n@*return* `y` — y coordinate of the curve at parameter t.",
                    "finish": [
                        248,
                        36
                    ],
                    "rawdesc": "\nEvaluate Bézier curve at parameter t. The parameter must be between 0 and 1 (inclusive).\n\nThis function can be used to move objects along paths or tween parameters. However it should not be used to render the curve, see BezierCurve:render for that purpose.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:evaluate)",
                    "returns": [
                        {
                            "desc": "x coordinate of the curve at parameter t.",
                            "name": "x",
                            "rawdesc": "x coordinate of the curve at parameter t.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "y coordinate of the curve at parameter t.",
                            "name": "y",
                            "rawdesc": "y coordinate of the curve at parameter t.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        248,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:evaluate(t: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    248,
                    29
                ],
                "name": "evaluate",
                "rawdesc": "\nEvaluate Bézier curve at parameter t. The parameter must be between 0 and 1 (inclusive).\n\nThis function can be used to move objects along paths or tween parameters. However it should not be used to render the curve, see BezierCurve:render for that purpose.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:evaluate)",
                "start": [
                    248,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPoint)\n\n@*param* `i` — Index of the control point.\n\n@*return* `x` — Position of the control point along the x axis.\n\n@*return* `y` — Position of the control point along the y axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                259,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                259,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Index of the control point.",
                            "finish": [
                                259,
                                38
                            ],
                            "name": "i",
                            "rawdesc": "Index of the control point.",
                            "start": [
                                259,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPoint)\n\n@*param* `i` — Index of the control point.\n\n@*return* `x` — Position of the control point along the x axis.\n\n@*return* `y` — Position of the control point along the y axis.",
                    "finish": [
                        259,
                        43
                    ],
                    "rawdesc": "\nGet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPoint)",
                    "returns": [
                        {
                            "desc": "Position of the control point along the x axis.",
                            "name": "x",
                            "rawdesc": "Position of the control point along the x axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Position of the control point along the y axis.",
                            "name": "y",
                            "rawdesc": "Position of the control point along the y axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:getControlPoint(i: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    259,
                    36
                ],
                "name": "getControlPoint",
                "rawdesc": "\nGet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPoint)",
                "start": [
                    259,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the number of control points in the Bézier curve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPointCount)\n\n@*return* `count` — The number of control points.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                268,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                268,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "desc": "\nGet the number of control points in the Bézier curve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPointCount)\n\n@*return* `count` — The number of control points.",
                    "finish": [
                        268,
                        47
                    ],
                    "rawdesc": "\nGet the number of control points in the Bézier curve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPointCount)",
                    "returns": [
                        {
                            "desc": "The number of control points.",
                            "name": "count",
                            "rawdesc": "The number of control points.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        268,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:getControlPointCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    268,
                    41
                ],
                "name": "getControlPointCount",
                "rawdesc": "\nGet the number of control points in the Bézier curve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getControlPointCount)",
                "start": [
                    268,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet degree of the Bézier curve. The degree is equal to number-of-control-points - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDegree)\n\n@*return* `degree` — Degree of the Bézier curve.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                277,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                277,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "desc": "\nGet degree of the Bézier curve. The degree is equal to number-of-control-points - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDegree)\n\n@*return* `degree` — Degree of the Bézier curve.",
                    "finish": [
                        277,
                        36
                    ],
                    "rawdesc": "\nGet degree of the Bézier curve. The degree is equal to number-of-control-points - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDegree)",
                    "returns": [
                        {
                            "desc": "Degree of the Bézier curve.",
                            "name": "degree",
                            "rawdesc": "Degree of the Bézier curve.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        277,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:getDegree()\n  -> degree: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    277,
                    30
                ],
                "name": "getDegree",
                "rawdesc": "\nGet degree of the Bézier curve. The degree is equal to number-of-control-points - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDegree)",
                "start": [
                    277,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the derivative of the Bézier curve.\n\nThis function can be used to rotate sprites moving along a curve in the direction of the movement and compute the direction perpendicular to the curve at some parameter t.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDerivative)\n\n@*return* `derivative` — The derivative curve.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                288,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                288,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "desc": "\nGet the derivative of the Bézier curve.\n\nThis function can be used to rotate sprites moving along a curve in the direction of the movement and compute the direction perpendicular to the curve at some parameter t.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDerivative)\n\n@*return* `derivative` — The derivative curve.",
                    "finish": [
                        288,
                        40
                    ],
                    "rawdesc": "\nGet the derivative of the Bézier curve.\n\nThis function can be used to rotate sprites moving along a curve in the direction of the movement and compute the direction perpendicular to the curve at some parameter t.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDerivative)",
                    "returns": [
                        {
                            "desc": "The derivative curve.",
                            "name": "derivative",
                            "rawdesc": "The derivative curve.",
                            "type": "function.return",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "start": [
                        288,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:getDerivative()\n  -> derivative: love.BezierCurve"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    288,
                    34
                ],
                "name": "getDerivative",
                "rawdesc": "\nGet the derivative of the Bézier curve.\n\nThis function can be used to rotate sprites moving along a curve in the direction of the movement and compute the direction perpendicular to the curve at some parameter t.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getDerivative)",
                "start": [
                    288,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a BezierCurve that corresponds to the specified segment of this BezierCurve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getSegment)\n\n@*param* `startpoint` — The starting point along the curve. Must be between 0 and 1.\n\n@*param* `endpoint` — The end of the segment. Must be between 0 and 1.\n\n@*return* `curve` — A BezierCurve that corresponds to the specified segment.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                299,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                299,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "The starting point along the curve. Must be between 0 and 1.",
                            "finish": [
                                299,
                                42
                            ],
                            "name": "startpoint",
                            "rawdesc": "The starting point along the curve. Must be between 0 and 1.",
                            "start": [
                                299,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The end of the segment. Must be between 0 and 1.",
                            "finish": [
                                299,
                                52
                            ],
                            "name": "endpoint",
                            "rawdesc": "The end of the segment. Must be between 0 and 1.",
                            "start": [
                                299,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets a BezierCurve that corresponds to the specified segment of this BezierCurve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getSegment)\n\n@*param* `startpoint` — The starting point along the curve. Must be between 0 and 1.\n\n@*param* `endpoint` — The end of the segment. Must be between 0 and 1.\n\n@*return* `curve` — A BezierCurve that corresponds to the specified segment.",
                    "finish": [
                        299,
                        57
                    ],
                    "rawdesc": "\nGets a BezierCurve that corresponds to the specified segment of this BezierCurve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getSegment)",
                    "returns": [
                        {
                            "desc": "A BezierCurve that corresponds to the specified segment.",
                            "name": "curve",
                            "rawdesc": "A BezierCurve that corresponds to the specified segment.",
                            "type": "function.return",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "start": [
                        299,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:getSegment(startpoint: number, endpoint: number)\n  -> curve: love.BezierCurve"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    299,
                    31
                ],
                "name": "getSegment",
                "rawdesc": "\nGets a BezierCurve that corresponds to the specified segment of this BezierCurve.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:getSegment)",
                "start": [
                    299,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nInsert control point as the new i-th control point. Existing control points from i onwards are pushed back by 1. Indices start with 1. Negative indices wrap around: -1 is the last control point, -2 the one before the last, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:insertControlPoint)\n\n@*param* `x` — Position of the control point along the x axis.\n\n@*param* `y` — Position of the control point along the y axis.\n\n@*param* `i` — Index of the control point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                310,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                310,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Position of the control point along the x axis.",
                            "finish": [
                                310,
                                41
                            ],
                            "name": "x",
                            "rawdesc": "Position of the control point along the x axis.",
                            "start": [
                                310,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Position of the control point along the y axis.",
                            "finish": [
                                310,
                                44
                            ],
                            "name": "y",
                            "rawdesc": "Position of the control point along the y axis.",
                            "start": [
                                310,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Index of the control point.",
                            "finish": [
                                310,
                                47
                            ],
                            "name": "i",
                            "rawdesc": "Index of the control point.",
                            "start": [
                                310,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nInsert control point as the new i-th control point. Existing control points from i onwards are pushed back by 1. Indices start with 1. Negative indices wrap around: -1 is the last control point, -2 the one before the last, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:insertControlPoint)\n\n@*param* `x` — Position of the control point along the x axis.\n\n@*param* `y` — Position of the control point along the y axis.\n\n@*param* `i` — Index of the control point.",
                    "finish": [
                        310,
                        52
                    ],
                    "rawdesc": "\nInsert control point as the new i-th control point. Existing control points from i onwards are pushed back by 1. Indices start with 1. Negative indices wrap around: -1 is the last control point, -2 the one before the last, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:insertControlPoint)",
                    "start": [
                        310,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:insertControlPoint(x: number, y: number, i?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    310,
                    39
                ],
                "name": "insertControlPoint",
                "rawdesc": "\nInsert control point as the new i-th control point. Existing control points from i onwards are pushed back by 1. Indices start with 1. Negative indices wrap around: -1 is the last control point, -2 the one before the last, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:insertControlPoint)",
                "start": [
                    310,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves the specified control point.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:removeControlPoint)\n\n@*param* `index` — The index of the control point to remove.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                319,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                319,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "The index of the control point to remove.",
                            "finish": [
                                319,
                                45
                            ],
                            "name": "index",
                            "rawdesc": "The index of the control point to remove.",
                            "start": [
                                319,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nRemoves the specified control point.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:removeControlPoint)\n\n@*param* `index` — The index of the control point to remove.",
                    "finish": [
                        319,
                        50
                    ],
                    "rawdesc": "\nRemoves the specified control point.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:removeControlPoint)",
                    "start": [
                        319,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:removeControlPoint(index: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    319,
                    39
                ],
                "name": "removeControlPoint",
                "rawdesc": "\nRemoves the specified control point.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:removeControlPoint)",
                "start": [
                    319,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet a list of coordinates to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just interested to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:render)\n\n@*param* `depth` — Number of recursive subdivision steps.\n\n@*return* `coordinates` — List of x,y-coordinate pairs of points on the curve.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                333,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                333,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Number of recursive subdivision steps.",
                            "finish": [
                                333,
                                33
                            ],
                            "name": "depth",
                            "rawdesc": "Number of recursive subdivision steps.",
                            "start": [
                                333,
                                28
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGet a list of coordinates to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just interested to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:render)\n\n@*param* `depth` — Number of recursive subdivision steps.\n\n@*return* `coordinates` — List of x,y-coordinate pairs of points on the curve.",
                    "finish": [
                        333,
                        38
                    ],
                    "rawdesc": "\nGet a list of coordinates to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just interested to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:render)",
                    "returns": [
                        {
                            "desc": "List of x,y-coordinate pairs of points on the curve.",
                            "name": "coordinates",
                            "rawdesc": "List of x,y-coordinate pairs of points on the curve.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        333,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:render(depth?: number)\n  -> coordinates: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    333,
                    27
                ],
                "name": "render",
                "rawdesc": "\nGet a list of coordinates to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just interested to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:render)",
                "start": [
                    333,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet a list of coordinates on a specific part of the curve, to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just need to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:renderSegment)\n\n@*param* `startpoint` — The starting point along the curve. Must be between 0 and 1.\n\n@*param* `endpoint` — The end of the segment to render. Must be between 0 and 1.\n\n@*param* `depth` — Number of recursive subdivision steps.\n\n@*return* `coordinates` — List of x,y-coordinate pairs of points on the specified part of the curve.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                349,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                349,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "The starting point along the curve. Must be between 0 and 1.",
                            "finish": [
                                349,
                                45
                            ],
                            "name": "startpoint",
                            "rawdesc": "The starting point along the curve. Must be between 0 and 1.",
                            "start": [
                                349,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The end of the segment to render. Must be between 0 and 1.",
                            "finish": [
                                349,
                                55
                            ],
                            "name": "endpoint",
                            "rawdesc": "The end of the segment to render. Must be between 0 and 1.",
                            "start": [
                                349,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Number of recursive subdivision steps.",
                            "finish": [
                                349,
                                62
                            ],
                            "name": "depth",
                            "rawdesc": "Number of recursive subdivision steps.",
                            "start": [
                                349,
                                57
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGet a list of coordinates on a specific part of the curve, to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just need to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:renderSegment)\n\n@*param* `startpoint` — The starting point along the curve. Must be between 0 and 1.\n\n@*param* `endpoint` — The end of the segment to render. Must be between 0 and 1.\n\n@*param* `depth` — Number of recursive subdivision steps.\n\n@*return* `coordinates` — List of x,y-coordinate pairs of points on the specified part of the curve.",
                    "finish": [
                        349,
                        67
                    ],
                    "rawdesc": "\nGet a list of coordinates on a specific part of the curve, to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just need to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:renderSegment)",
                    "returns": [
                        {
                            "desc": "List of x,y-coordinate pairs of points on the specified part of the curve.",
                            "name": "coordinates",
                            "rawdesc": "List of x,y-coordinate pairs of points on the specified part of the curve.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        349,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:renderSegment(startpoint: number, endpoint: number, depth?: number)\n  -> coordinates: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    349,
                    34
                ],
                "name": "renderSegment",
                "rawdesc": "\nGet a list of coordinates on a specific part of the curve, to be used with love.graphics.line.\n\nThis function samples the Bézier curve using recursive subdivision. You can control the recursion depth using the depth parameter.\n\nIf you are just need to know the position on the curve given a parameter, use BezierCurve:evaluate.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:renderSegment)",
                "start": [
                    349,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRotate the Bézier curve by an angle.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:rotate)\n\n@*param* `angle` — Rotation angle in radians.\n\n@*param* `ox` — X coordinate of the rotation center.\n\n@*param* `oy` — Y coordinate of the rotation center.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                360,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                360,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Rotation angle in radians.",
                            "finish": [
                                360,
                                33
                            ],
                            "name": "angle",
                            "rawdesc": "Rotation angle in radians.",
                            "start": [
                                360,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "X coordinate of the rotation center.",
                            "finish": [
                                360,
                                37
                            ],
                            "name": "ox",
                            "rawdesc": "X coordinate of the rotation center.",
                            "start": [
                                360,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y coordinate of the rotation center.",
                            "finish": [
                                360,
                                41
                            ],
                            "name": "oy",
                            "rawdesc": "Y coordinate of the rotation center.",
                            "start": [
                                360,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nRotate the Bézier curve by an angle.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:rotate)\n\n@*param* `angle` — Rotation angle in radians.\n\n@*param* `ox` — X coordinate of the rotation center.\n\n@*param* `oy` — Y coordinate of the rotation center.",
                    "finish": [
                        360,
                        46
                    ],
                    "rawdesc": "\nRotate the Bézier curve by an angle.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:rotate)",
                    "start": [
                        360,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:rotate(angle: number, ox?: number, oy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    360,
                    27
                ],
                "name": "rotate",
                "rawdesc": "\nRotate the Bézier curve by an angle.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:rotate)",
                "start": [
                    360,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nScale the Bézier curve by a factor.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:scale)\n\n@*param* `s` — Scale factor.\n\n@*param* `ox` — X coordinate of the scaling center.\n\n@*param* `oy` — Y coordinate of the scaling center.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                371,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                371,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Scale factor.",
                            "finish": [
                                371,
                                28
                            ],
                            "name": "s",
                            "rawdesc": "Scale factor.",
                            "start": [
                                371,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "X coordinate of the scaling center.",
                            "finish": [
                                371,
                                32
                            ],
                            "name": "ox",
                            "rawdesc": "X coordinate of the scaling center.",
                            "start": [
                                371,
                                30
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Y coordinate of the scaling center.",
                            "finish": [
                                371,
                                36
                            ],
                            "name": "oy",
                            "rawdesc": "Y coordinate of the scaling center.",
                            "start": [
                                371,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nScale the Bézier curve by a factor.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:scale)\n\n@*param* `s` — Scale factor.\n\n@*param* `ox` — X coordinate of the scaling center.\n\n@*param* `oy` — Y coordinate of the scaling center.",
                    "finish": [
                        371,
                        41
                    ],
                    "rawdesc": "\nScale the Bézier curve by a factor.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:scale)",
                    "start": [
                        371,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:scale(s: number, ox?: number, oy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    371,
                    26
                ],
                "name": "scale",
                "rawdesc": "\nScale the Bézier curve by a factor.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:scale)",
                "start": [
                    371,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:setControlPoint)\n\n@*param* `i` — Index of the control point.\n\n@*param* `x` — Position of the control point along the x axis.\n\n@*param* `y` — Position of the control point along the y axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                382,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                382,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Index of the control point.",
                            "finish": [
                                382,
                                38
                            ],
                            "name": "i",
                            "rawdesc": "Index of the control point.",
                            "start": [
                                382,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Position of the control point along the x axis.",
                            "finish": [
                                382,
                                41
                            ],
                            "name": "x",
                            "rawdesc": "Position of the control point along the x axis.",
                            "start": [
                                382,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Position of the control point along the y axis.",
                            "finish": [
                                382,
                                44
                            ],
                            "name": "y",
                            "rawdesc": "Position of the control point along the y axis.",
                            "start": [
                                382,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:setControlPoint)\n\n@*param* `i` — Index of the control point.\n\n@*param* `x` — Position of the control point along the x axis.\n\n@*param* `y` — Position of the control point along the y axis.",
                    "finish": [
                        382,
                        49
                    ],
                    "rawdesc": "\nSet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:setControlPoint)",
                    "start": [
                        382,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:setControlPoint(i: number, x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    382,
                    36
                ],
                "name": "setControlPoint",
                "rawdesc": "\nSet coordinates of the i-th control point. Indices start with 1.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:setControlPoint)",
                "start": [
                    382,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMove the Bézier curve by an offset.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:translate)\n\n@*param* `dx` — Offset along the x axis.\n\n@*param* `dy` — Offset along the y axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                392,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Bézier curve object that can evaluate and render Bézier curves of arbitrary degree.\n\nFor more information on Bézier curves check this great article on Wikipedia.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                392,
                                8
                            ],
                            "type": "self",
                            "view": "love.BezierCurve"
                        },
                        {
                            "desc": "Offset along the x axis.",
                            "finish": [
                                392,
                                33
                            ],
                            "name": "dx",
                            "rawdesc": "Offset along the x axis.",
                            "start": [
                                392,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Offset along the y axis.",
                            "finish": [
                                392,
                                37
                            ],
                            "name": "dy",
                            "rawdesc": "Offset along the y axis.",
                            "start": [
                                392,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nMove the Bézier curve by an offset.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:translate)\n\n@*param* `dx` — Offset along the x axis.\n\n@*param* `dy` — Offset along the y axis.",
                    "finish": [
                        392,
                        42
                    ],
                    "rawdesc": "\nMove the Bézier curve by an offset.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:translate)",
                    "start": [
                        392,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.BezierCurve:translate(dx: number, dy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    392,
                    30
                ],
                "name": "translate",
                "rawdesc": "\nMove the Bézier curve by an offset.\n\n\n[Open in Browser](https://love2d.org/wiki/BezierCurve:translate)",
                "start": [
                    392,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.BezierCurve",
        "type": "type",
        "view": "love.BezierCurve"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nlove.BlendAlphaMode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                "finish": [
                    3476,
                    20
                ],
                "rawdesc": "```lua\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nlove.BlendAlphaMode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                "start": [
                    3468,
                    10
                ],
                "type": "doc.alias",
                "view": "\"alphamultiply\"|\"premultiplied\""
            }
        ],
        "fields": [],
        "name": "love.BlendAlphaMode",
        "type": "type",
        "view": "love.BlendAlphaMode"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nlove.BlendMode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                "finish": [
                    3532,
                    20
                ],
                "rawdesc": "```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nlove.BlendMode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                "start": [
                    3484,
                    10
                ],
                "type": "doc.alias",
                "view": "\"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)"
            }
        ],
        "fields": [],
        "name": "love.BlendMode",
        "type": "type",
        "view": "love.BlendMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            373,
                            32
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            373,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    373,
                    32
                ],
                "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    373,
                    10
                ],
                "type": "doc.class",
                "view": "love.Body",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies an angular impulse to a body. This makes a single, instantaneous addition to the body momentum.\n\nA body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyAngularImpulse)\n\n@*param* `impulse` — The impulse in kilogram-square meter per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                385,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                385,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The impulse in kilogram-square meter per second.",
                            "finish": [
                                385,
                                41
                            ],
                            "name": "impulse",
                            "rawdesc": "The impulse in kilogram-square meter per second.",
                            "start": [
                                385,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies an angular impulse to a body. This makes a single, instantaneous addition to the body momentum.\n\nA body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyAngularImpulse)\n\n@*param* `impulse` — The impulse in kilogram-square meter per second.",
                    "finish": [
                        385,
                        46
                    ],
                    "rawdesc": "\nApplies an angular impulse to a body. This makes a single, instantaneous addition to the body momentum.\n\nA body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyAngularImpulse)",
                    "start": [
                        385,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:applyAngularImpulse(impulse: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    385,
                    33
                ],
                "name": "applyAngularImpulse",
                "rawdesc": "\nApplies an angular impulse to a body. This makes a single, instantaneous addition to the body momentum.\n\nA body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyAngularImpulse)",
                "start": [
                    385,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApply force to a Body.\n\nA force pushes a body in a direction. A body with with a larger mass will react less. The reaction also depends on how long a force is applied: since the force acts continuously over the entire timestep, a short timestep will only push the body for a short time. Thus forces are best used for many timesteps to give a continuous push to a body (like gravity). For a single push that is independent of timestep, it is better to use Body:applyLinearImpulse.\n\nIf the position to apply the force is not given, it will act on the center of mass of the body. The part of the force not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the force components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyForce)\n\n\n---\n\n@*param* `fx` — The x component of force to apply to the center of mass.\n\n@*param* `fy` — The y component of force to apply to the center of mass.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                402,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                402,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x component of force to apply to the center of mass.",
                            "finish": [
                                402,
                                27
                            ],
                            "name": "fx",
                            "rawdesc": "The x component of force to apply to the center of mass.",
                            "start": [
                                402,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of force to apply to the center of mass.",
                            "finish": [
                                402,
                                31
                            ],
                            "name": "fy",
                            "rawdesc": "The y component of force to apply to the center of mass.",
                            "start": [
                                402,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApply force to a Body.\n\nA force pushes a body in a direction. A body with with a larger mass will react less. The reaction also depends on how long a force is applied: since the force acts continuously over the entire timestep, a short timestep will only push the body for a short time. Thus forces are best used for many timesteps to give a continuous push to a body (like gravity). For a single push that is independent of timestep, it is better to use Body:applyLinearImpulse.\n\nIf the position to apply the force is not given, it will act on the center of mass of the body. The part of the force not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the force components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyForce)\n\n\n---\n\n@*param* `fx` — The x component of force to apply to the center of mass.\n\n@*param* `fy` — The y component of force to apply to the center of mass.",
                    "finish": [
                        402,
                        36
                    ],
                    "rawdesc": "\nApply force to a Body.\n\nA force pushes a body in a direction. A body with with a larger mass will react less. The reaction also depends on how long a force is applied: since the force acts continuously over the entire timestep, a short timestep will only push the body for a short time. Thus forces are best used for many timesteps to give a continuous push to a body (like gravity). For a single push that is independent of timestep, it is better to use Body:applyLinearImpulse.\n\nIf the position to apply the force is not given, it will act on the center of mass of the body. The part of the force not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the force components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyForce)",
                    "start": [
                        402,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:applyForce(fx: number, fy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    402,
                    24
                ],
                "name": "applyForce",
                "rawdesc": "\nApply force to a Body.\n\nA force pushes a body in a direction. A body with with a larger mass will react less. The reaction also depends on how long a force is applied: since the force acts continuously over the entire timestep, a short timestep will only push the body for a short time. Thus forces are best used for many timesteps to give a continuous push to a body (like gravity). For a single push that is independent of timestep, it is better to use Body:applyLinearImpulse.\n\nIf the position to apply the force is not given, it will act on the center of mass of the body. The part of the force not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the force components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyForce)",
                "start": [
                    402,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies an impulse to a body.\n\nThis makes a single, instantaneous addition to the body momentum.\n\nAn impulse pushes a body in a direction. A body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\nIf the position to apply the impulse is not given, it will act on the center of mass of the body. The part of the impulse not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the impulse components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyLinearImpulse)\n\n\n---\n\n@*param* `ix` — The x component of the impulse applied to the center of mass.\n\n@*param* `iy` — The y component of the impulse applied to the center of mass.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                421,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                421,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x component of the impulse applied to the center of mass.",
                            "finish": [
                                421,
                                35
                            ],
                            "name": "ix",
                            "rawdesc": "The x component of the impulse applied to the center of mass.",
                            "start": [
                                421,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the impulse applied to the center of mass.",
                            "finish": [
                                421,
                                39
                            ],
                            "name": "iy",
                            "rawdesc": "The y component of the impulse applied to the center of mass.",
                            "start": [
                                421,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies an impulse to a body.\n\nThis makes a single, instantaneous addition to the body momentum.\n\nAn impulse pushes a body in a direction. A body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\nIf the position to apply the impulse is not given, it will act on the center of mass of the body. The part of the impulse not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the impulse components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyLinearImpulse)\n\n\n---\n\n@*param* `ix` — The x component of the impulse applied to the center of mass.\n\n@*param* `iy` — The y component of the impulse applied to the center of mass.",
                    "finish": [
                        421,
                        44
                    ],
                    "rawdesc": "\nApplies an impulse to a body.\n\nThis makes a single, instantaneous addition to the body momentum.\n\nAn impulse pushes a body in a direction. A body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\nIf the position to apply the impulse is not given, it will act on the center of mass of the body. The part of the impulse not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the impulse components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyLinearImpulse)",
                    "start": [
                        421,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:applyLinearImpulse(ix: number, iy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    421,
                    32
                ],
                "name": "applyLinearImpulse",
                "rawdesc": "\nApplies an impulse to a body.\n\nThis makes a single, instantaneous addition to the body momentum.\n\nAn impulse pushes a body in a direction. A body with with a larger mass will react less. The reaction does '''not''' depend on the timestep, and is equivalent to applying a force continuously for 1 second. Impulses are best used to give a single push to a body. For a continuous push to a body it is better to use Body:applyForce.\n\nIf the position to apply the impulse is not given, it will act on the center of mass of the body. The part of the impulse not directed towards the center of mass will cause the body to spin (and depends on the rotational inertia).\n\nNote that the impulse components and position must be given in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyLinearImpulse)",
                "start": [
                    421,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApply torque to a body.\n\nTorque is like a force that will change the angular velocity (spin) of a body. The effect will depend on the rotational inertia a body has.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyTorque)\n\n@*param* `torque` — The torque to apply.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                432,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                432,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The torque to apply.",
                            "finish": [
                                432,
                                32
                            ],
                            "name": "torque",
                            "rawdesc": "The torque to apply.",
                            "start": [
                                432,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApply torque to a body.\n\nTorque is like a force that will change the angular velocity (spin) of a body. The effect will depend on the rotational inertia a body has.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyTorque)\n\n@*param* `torque` — The torque to apply.",
                    "finish": [
                        432,
                        37
                    ],
                    "rawdesc": "\nApply torque to a body.\n\nTorque is like a force that will change the angular velocity (spin) of a body. The effect will depend on the rotational inertia a body has.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyTorque)",
                    "start": [
                        432,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:applyTorque(torque: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    432,
                    25
                ],
                "name": "applyTorque",
                "rawdesc": "\nApply torque to a body.\n\nTorque is like a force that will change the angular velocity (spin) of a body. The effect will depend on the rotational inertia a body has.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:applyTorque)",
                "start": [
                    432,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Body and all fixtures and joints attached to it.\n\nAn error will occur if you attempt to use the object after calling this function. In 0.7.2, when you don't have time to wait for garbage collection, this function may be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                442,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                442,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Body and all fixtures and joints attached to it.\n\nAn error will occur if you attempt to use the object after calling this function. In 0.7.2, when you don't have time to wait for garbage collection, this function may be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:destroy)",
                    "finish": [
                        442,
                        27
                    ],
                    "rawdesc": "\nExplicitly destroys the Body and all fixtures and joints attached to it.\n\nAn error will occur if you attempt to use the object after calling this function. In 0.7.2, when you don't have time to wait for garbage collection, this function may be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:destroy)",
                    "start": [
                        442,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    442,
                    21
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Body and all fixtures and joints attached to it.\n\nAn error will occur if you attempt to use the object after calling this function. In 0.7.2, when you don't have time to wait for garbage collection, this function may be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:destroy)",
                "start": [
                    442,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it to degrees, use math.deg.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngle)\n\n@*return* `angle` — The angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                455,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                455,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it to degrees, use math.deg.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngle)\n\n@*return* `angle` — The angle in radians.",
                    "finish": [
                        455,
                        28
                    ],
                    "rawdesc": "\nGet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it to degrees, use math.deg.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngle)",
                    "returns": [
                        {
                            "desc": "The angle in radians.",
                            "name": "angle",
                            "rawdesc": "The angle in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        455,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getAngle()\n  -> angle: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    455,
                    22
                ],
                "name": "getAngle",
                "rawdesc": "\nGet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it to degrees, use math.deg.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngle)",
                "start": [
                    455,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Angular damping of the Body\n\nThe angular damping is the ''rate of decrease of the angular velocity over time'': A spinning body with no damping and no external forces will continue spinning indefinitely. A spinning body with damping will gradually stop spinning.\n\nDamping is not the same as friction - they can be modelled together. However, only damping is provided by Box2D (and LOVE).\n\nDamping parameters should be between 0 and infinity, with 0 meaning no damping, and infinity meaning full damping. Normally you will use a damping value between 0 and 0.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularDamping)\n\n@*return* `damping` — The value of the angular damping.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                470,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                470,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets the Angular damping of the Body\n\nThe angular damping is the ''rate of decrease of the angular velocity over time'': A spinning body with no damping and no external forces will continue spinning indefinitely. A spinning body with damping will gradually stop spinning.\n\nDamping is not the same as friction - they can be modelled together. However, only damping is provided by Box2D (and LOVE).\n\nDamping parameters should be between 0 and infinity, with 0 meaning no damping, and infinity meaning full damping. Normally you will use a damping value between 0 and 0.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularDamping)\n\n@*return* `damping` — The value of the angular damping.",
                    "finish": [
                        470,
                        37
                    ],
                    "rawdesc": "\nGets the Angular damping of the Body\n\nThe angular damping is the ''rate of decrease of the angular velocity over time'': A spinning body with no damping and no external forces will continue spinning indefinitely. A spinning body with damping will gradually stop spinning.\n\nDamping is not the same as friction - they can be modelled together. However, only damping is provided by Box2D (and LOVE).\n\nDamping parameters should be between 0 and infinity, with 0 meaning no damping, and infinity meaning full damping. Normally you will use a damping value between 0 and 0.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularDamping)",
                    "returns": [
                        {
                            "desc": "The value of the angular damping.",
                            "name": "damping",
                            "rawdesc": "The value of the angular damping.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        470,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getAngularDamping()\n  -> damping: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    470,
                    31
                ],
                "name": "getAngularDamping",
                "rawdesc": "\nGets the Angular damping of the Body\n\nThe angular damping is the ''rate of decrease of the angular velocity over time'': A spinning body with no damping and no external forces will continue spinning indefinitely. A spinning body with damping will gradually stop spinning.\n\nDamping is not the same as friction - they can be modelled together. However, only damping is provided by Box2D (and LOVE).\n\nDamping parameters should be between 0 and infinity, with 0 meaning no damping, and infinity meaning full damping. Normally you will use a damping value between 0 and 0.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularDamping)",
                "start": [
                    470,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the angular velocity of the Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nIt is changed in World:update by applying torques, off centre forces/impulses, and angular damping. It can be set directly with Body:setAngularVelocity.\n\nIf you need the ''rate of change of position over time'', use Body:getLinearVelocity.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularVelocity)\n\n@*return* `w` — The angular velocity in radians/second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                485,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                485,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the angular velocity of the Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nIt is changed in World:update by applying torques, off centre forces/impulses, and angular damping. It can be set directly with Body:setAngularVelocity.\n\nIf you need the ''rate of change of position over time'', use Body:getLinearVelocity.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularVelocity)\n\n@*return* `w` — The angular velocity in radians/second.",
                    "finish": [
                        485,
                        38
                    ],
                    "rawdesc": "\nGet the angular velocity of the Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nIt is changed in World:update by applying torques, off centre forces/impulses, and angular damping. It can be set directly with Body:setAngularVelocity.\n\nIf you need the ''rate of change of position over time'', use Body:getLinearVelocity.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularVelocity)",
                    "returns": [
                        {
                            "desc": "The angular velocity in radians/second.",
                            "name": "w",
                            "rawdesc": "The angular velocity in radians/second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        485,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getAngularVelocity()\n  -> w: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    485,
                    32
                ],
                "name": "getAngularVelocity",
                "rawdesc": "\nGet the angular velocity of the Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nIt is changed in World:update by applying torques, off centre forces/impulses, and angular damping. It can be set directly with Body:setAngularVelocity.\n\nIf you need the ''rate of change of position over time'', use Body:getLinearVelocity.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getAngularVelocity)",
                "start": [
                    485,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of all Contacts attached to the Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getContacts)\n\n@*return* `contacts` — A list with all contacts associated with the Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                494,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                494,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets a list of all Contacts attached to the Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getContacts)\n\n@*return* `contacts` — A list with all contacts associated with the Body.",
                    "finish": [
                        494,
                        31
                    ],
                    "rawdesc": "\nGets a list of all Contacts attached to the Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getContacts)",
                    "returns": [
                        {
                            "desc": "A list with all contacts associated with the Body.",
                            "name": "contacts",
                            "rawdesc": "A list with all contacts associated with the Body.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        494,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getContacts()\n  -> contacts: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    494,
                    25
                ],
                "name": "getContacts",
                "rawdesc": "\nGets a list of all Contacts attached to the Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getContacts)",
                "start": [
                    494,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with all fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getFixtures)\n\n@*return* `fixtures` — A sequence with all fixtures.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                503,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                503,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns a table with all fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getFixtures)\n\n@*return* `fixtures` — A sequence with all fixtures.",
                    "finish": [
                        503,
                        31
                    ],
                    "rawdesc": "\nReturns a table with all fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getFixtures)",
                    "returns": [
                        {
                            "desc": "A sequence with all fixtures.",
                            "name": "fixtures",
                            "rawdesc": "A sequence with all fixtures.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        503,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getFixtures()\n  -> fixtures: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    503,
                    25
                ],
                "name": "getFixtures",
                "rawdesc": "\nReturns a table with all fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getFixtures)",
                "start": [
                    503,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the gravity scale factor.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getGravityScale)\n\n@*return* `scale` — The gravity scale factor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                512,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                512,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns the gravity scale factor.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getGravityScale)\n\n@*return* `scale` — The gravity scale factor.",
                    "finish": [
                        512,
                        35
                    ],
                    "rawdesc": "\nReturns the gravity scale factor.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getGravityScale)",
                    "returns": [
                        {
                            "desc": "The gravity scale factor.",
                            "name": "scale",
                            "rawdesc": "The gravity scale factor.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        512,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getGravityScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    512,
                    29
                ],
                "name": "getGravityScale",
                "rawdesc": "\nReturns the gravity scale factor.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getGravityScale)",
                "start": [
                    512,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the rotational inertia of the body.\n\nThe rotational inertia is how hard is it to make the body spin.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getInertia)\n\n@*return* `inertia` — The rotational inertial of the body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                523,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                523,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets the rotational inertia of the body.\n\nThe rotational inertia is how hard is it to make the body spin.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getInertia)\n\n@*return* `inertia` — The rotational inertial of the body.",
                    "finish": [
                        523,
                        30
                    ],
                    "rawdesc": "\nGets the rotational inertia of the body.\n\nThe rotational inertia is how hard is it to make the body spin.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getInertia)",
                    "returns": [
                        {
                            "desc": "The rotational inertial of the body.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertial of the body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        523,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getInertia()\n  -> inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    523,
                    24
                ],
                "name": "getInertia",
                "rawdesc": "\nGets the rotational inertia of the body.\n\nThe rotational inertia is how hard is it to make the body spin.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getInertia)",
                "start": [
                    523,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table containing the Joints attached to this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getJoints)\n\n@*return* `joints` — A sequence with the Joints attached to the Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                532,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                532,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns a table containing the Joints attached to this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getJoints)\n\n@*return* `joints` — A sequence with the Joints attached to the Body.",
                    "finish": [
                        532,
                        29
                    ],
                    "rawdesc": "\nReturns a table containing the Joints attached to this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getJoints)",
                    "returns": [
                        {
                            "desc": "A sequence with the Joints attached to the Body.",
                            "name": "joints",
                            "rawdesc": "A sequence with the Joints attached to the Body.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        532,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getJoints()\n  -> joints: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    532,
                    23
                ],
                "name": "getJoints",
                "rawdesc": "\nReturns a table containing the Joints attached to this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getJoints)",
                "start": [
                    532,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the linear damping of the Body.\n\nThe linear damping is the ''rate of decrease of the linear velocity over time''. A moving body with no damping and no external forces will continue moving indefinitely, as is the case in space. A moving body with damping will gradually stop moving.\n\nDamping is not the same as friction - they can be modelled together.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearDamping)\n\n@*return* `damping` — The value of the linear damping.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                545,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                545,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets the linear damping of the Body.\n\nThe linear damping is the ''rate of decrease of the linear velocity over time''. A moving body with no damping and no external forces will continue moving indefinitely, as is the case in space. A moving body with damping will gradually stop moving.\n\nDamping is not the same as friction - they can be modelled together.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearDamping)\n\n@*return* `damping` — The value of the linear damping.",
                    "finish": [
                        545,
                        36
                    ],
                    "rawdesc": "\nGets the linear damping of the Body.\n\nThe linear damping is the ''rate of decrease of the linear velocity over time''. A moving body with no damping and no external forces will continue moving indefinitely, as is the case in space. A moving body with damping will gradually stop moving.\n\nDamping is not the same as friction - they can be modelled together.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearDamping)",
                    "returns": [
                        {
                            "desc": "The value of the linear damping.",
                            "name": "damping",
                            "rawdesc": "The value of the linear damping.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        545,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLinearDamping()\n  -> damping: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    545,
                    30
                ],
                "name": "getLinearDamping",
                "rawdesc": "\nGets the linear damping of the Body.\n\nThe linear damping is the ''rate of decrease of the linear velocity over time''. A moving body with no damping and no external forces will continue moving indefinitely, as is the case in space. A moving body with damping will gradually stop moving.\n\nDamping is not the same as friction - they can be modelled together.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearDamping)",
                "start": [
                    545,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the linear velocity of the Body from its center of mass.\n\nThe linear velocity is the ''rate of change of position over time''.\n\nIf you need the ''rate of change of angle over time'', use Body:getAngularVelocity.\n\nIf you need to get the linear velocity of a point different from the center of mass:\n\n*  Body:getLinearVelocityFromLocalPoint allows you to specify the point in local coordinates.\n\n*  Body:getLinearVelocityFromWorldPoint allows you to specify the point in world coordinates.\n\nSee page 136 of 'Essential Mathematics for Games and Interactive Applications' for definitions of local and world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocity)\n\n@*return* `x` — The x-component of the velocity vector\n\n@*return* `y` — The y-component of the velocity vector",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                567,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                567,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets the linear velocity of the Body from its center of mass.\n\nThe linear velocity is the ''rate of change of position over time''.\n\nIf you need the ''rate of change of angle over time'', use Body:getAngularVelocity.\n\nIf you need to get the linear velocity of a point different from the center of mass:\n\n*  Body:getLinearVelocityFromLocalPoint allows you to specify the point in local coordinates.\n\n*  Body:getLinearVelocityFromWorldPoint allows you to specify the point in world coordinates.\n\nSee page 136 of 'Essential Mathematics for Games and Interactive Applications' for definitions of local and world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocity)\n\n@*return* `x` — The x-component of the velocity vector\n\n@*return* `y` — The y-component of the velocity vector",
                    "finish": [
                        567,
                        37
                    ],
                    "rawdesc": "\nGets the linear velocity of the Body from its center of mass.\n\nThe linear velocity is the ''rate of change of position over time''.\n\nIf you need the ''rate of change of angle over time'', use Body:getAngularVelocity.\n\nIf you need to get the linear velocity of a point different from the center of mass:\n\n*  Body:getLinearVelocityFromLocalPoint allows you to specify the point in local coordinates.\n\n*  Body:getLinearVelocityFromWorldPoint allows you to specify the point in world coordinates.\n\nSee page 136 of 'Essential Mathematics for Games and Interactive Applications' for definitions of local and world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocity)",
                    "returns": [
                        {
                            "desc": "The x-component of the velocity vector",
                            "name": "x",
                            "rawdesc": "The x-component of the velocity vector",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the velocity vector",
                            "name": "y",
                            "rawdesc": "The y-component of the velocity vector",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        567,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLinearVelocity()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    567,
                    31
                ],
                "name": "getLinearVelocity",
                "rawdesc": "\nGets the linear velocity of the Body from its center of mass.\n\nThe linear velocity is the ''rate of change of position over time''.\n\nIf you need the ''rate of change of angle over time'', use Body:getAngularVelocity.\n\nIf you need to get the linear velocity of a point different from the center of mass:\n\n*  Body:getLinearVelocityFromLocalPoint allows you to specify the point in local coordinates.\n\n*  Body:getLinearVelocityFromWorldPoint allows you to specify the point in world coordinates.\n\nSee page 136 of 'Essential Mathematics for Games and Interactive Applications' for definitions of local and world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocity)",
                "start": [
                    567,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in local coordinates. Use Body:getLinearVelocityFromWorldPoint to specify this with world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromLocalPoint)\n\n@*param* `x` — The x position to measure velocity.\n\n@*param* `y` — The y position to measure velocity.\n\n@*return* `vx` — The x component of velocity at point (x,y).\n\n@*return* `vy` — The y component of velocity at point (x,y).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                583,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                583,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position to measure velocity.",
                            "finish": [
                                583,
                                47
                            ],
                            "name": "x",
                            "rawdesc": "The x position to measure velocity.",
                            "start": [
                                583,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position to measure velocity.",
                            "finish": [
                                583,
                                50
                            ],
                            "name": "y",
                            "rawdesc": "The y position to measure velocity.",
                            "start": [
                                583,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in local coordinates. Use Body:getLinearVelocityFromWorldPoint to specify this with world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromLocalPoint)\n\n@*param* `x` — The x position to measure velocity.\n\n@*param* `y` — The y position to measure velocity.\n\n@*return* `vx` — The x component of velocity at point (x,y).\n\n@*return* `vy` — The y component of velocity at point (x,y).",
                    "finish": [
                        583,
                        55
                    ],
                    "rawdesc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in local coordinates. Use Body:getLinearVelocityFromWorldPoint to specify this with world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromLocalPoint)",
                    "returns": [
                        {
                            "desc": "The x component of velocity at point (x,y).",
                            "name": "vx",
                            "rawdesc": "The x component of velocity at point (x,y).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of velocity at point (x,y).",
                            "name": "vy",
                            "rawdesc": "The y component of velocity at point (x,y).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        583,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLinearVelocityFromLocalPoint(x: number, y: number)\n  -> vx: number\n  2. vy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    583,
                    45
                ],
                "name": "getLinearVelocityFromLocalPoint",
                "rawdesc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in local coordinates. Use Body:getLinearVelocityFromWorldPoint to specify this with world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromLocalPoint)",
                "start": [
                    583,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in world coordinates. Use Body:getLinearVelocityFromLocalPoint to specify this with local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromWorldPoint)\n\n@*param* `x` — The x position to measure velocity.\n\n@*param* `y` — The y position to measure velocity.\n\n@*return* `vx` — The x component of velocity at point (x,y).\n\n@*return* `vy` — The y component of velocity at point (x,y).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                599,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                599,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position to measure velocity.",
                            "finish": [
                                599,
                                47
                            ],
                            "name": "x",
                            "rawdesc": "The x position to measure velocity.",
                            "start": [
                                599,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position to measure velocity.",
                            "finish": [
                                599,
                                50
                            ],
                            "name": "y",
                            "rawdesc": "The y position to measure velocity.",
                            "start": [
                                599,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in world coordinates. Use Body:getLinearVelocityFromLocalPoint to specify this with local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromWorldPoint)\n\n@*param* `x` — The x position to measure velocity.\n\n@*param* `y` — The y position to measure velocity.\n\n@*return* `vx` — The x component of velocity at point (x,y).\n\n@*return* `vy` — The y component of velocity at point (x,y).",
                    "finish": [
                        599,
                        55
                    ],
                    "rawdesc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in world coordinates. Use Body:getLinearVelocityFromLocalPoint to specify this with local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromWorldPoint)",
                    "returns": [
                        {
                            "desc": "The x component of velocity at point (x,y).",
                            "name": "vx",
                            "rawdesc": "The x component of velocity at point (x,y).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of velocity at point (x,y).",
                            "name": "vy",
                            "rawdesc": "The y component of velocity at point (x,y).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        599,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLinearVelocityFromWorldPoint(x: number, y: number)\n  -> vx: number\n  2. vy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    599,
                    45
                ],
                "name": "getLinearVelocityFromWorldPoint",
                "rawdesc": "\nGet the linear velocity of a point on the body.\n\nThe linear velocity for a point on the body is the velocity of the body center of mass plus the velocity at that point from the body spinning.\n\nThe point on the body must given in world coordinates. Use Body:getLinearVelocityFromLocalPoint to specify this with local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLinearVelocityFromWorldPoint)",
                "start": [
                    599,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the center of mass position in local coordinates.\n\nUse Body:getWorldCenter to get the center of mass in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalCenter)\n\n@*return* `x` — The x coordinate of the center of mass.\n\n@*return* `y` — The y coordinate of the center of mass.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                611,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                611,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the center of mass position in local coordinates.\n\nUse Body:getWorldCenter to get the center of mass in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalCenter)\n\n@*return* `x` — The x coordinate of the center of mass.\n\n@*return* `y` — The y coordinate of the center of mass.",
                    "finish": [
                        611,
                        34
                    ],
                    "rawdesc": "\nGet the center of mass position in local coordinates.\n\nUse Body:getWorldCenter to get the center of mass in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalCenter)",
                    "returns": [
                        {
                            "desc": "The x coordinate of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x coordinate of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y coordinate of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        611,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLocalCenter()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    611,
                    28
                ],
                "name": "getLocalCenter",
                "rawdesc": "\nGet the center of mass position in local coordinates.\n\nUse Body:getWorldCenter to get the center of mass in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalCenter)",
                "start": [
                    611,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransform a point from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoint)\n\n@*param* `worldX` — The x position in world coordinates.\n\n@*param* `worldY` — The y position in world coordinates.\n\n@*return* `localX` — The x position in local coordinates.\n\n@*return* `localY` — The y position in local coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                623,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                623,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position in world coordinates.",
                            "finish": [
                                623,
                                34
                            ],
                            "name": "worldX",
                            "rawdesc": "The x position in world coordinates.",
                            "start": [
                                623,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position in world coordinates.",
                            "finish": [
                                623,
                                42
                            ],
                            "name": "worldY",
                            "rawdesc": "The y position in world coordinates.",
                            "start": [
                                623,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTransform a point from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoint)\n\n@*param* `worldX` — The x position in world coordinates.\n\n@*param* `worldY` — The y position in world coordinates.\n\n@*return* `localX` — The x position in local coordinates.\n\n@*return* `localY` — The y position in local coordinates.",
                    "finish": [
                        623,
                        47
                    ],
                    "rawdesc": "\nTransform a point from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoint)",
                    "returns": [
                        {
                            "desc": "The x position in local coordinates.",
                            "name": "localX",
                            "rawdesc": "The x position in local coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position in local coordinates.",
                            "name": "localY",
                            "rawdesc": "The y position in local coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        623,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLocalPoint(worldX: number, worldY: number)\n  -> localX: number\n  2. localY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    623,
                    27
                ],
                "name": "getLocalPoint",
                "rawdesc": "\nTransform a point from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoint)",
                "start": [
                    623,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransforms multiple points from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoints)\n\n@*param* `x1` — (Argument) The x position of the first point.\n\n@*param* `y1` — (Argument) The y position of the first point.\n\n@*param* `x2` — (Argument) The x position of the second point.\n\n@*param* `y2` — (Argument) The y position of the second point.\n\n@*return* `x1` — (Result) The transformed x position of the first point.\n\n@*return* `y1` — (Result) The transformed y position of the first point.\n\n@*return* `x2` — (Result) The transformed x position of the second point.\n\n@*return* `y2` — (Result) The transformed y position of the second point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                640,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                640,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "(Argument) The x position of the first point.",
                            "finish": [
                                640,
                                31
                            ],
                            "name": "x1",
                            "rawdesc": "(Argument) The x position of the first point.",
                            "start": [
                                640,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "(Argument) The y position of the first point.",
                            "finish": [
                                640,
                                35
                            ],
                            "name": "y1",
                            "rawdesc": "(Argument) The y position of the first point.",
                            "start": [
                                640,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "(Argument) The x position of the second point.",
                            "finish": [
                                640,
                                39
                            ],
                            "name": "x2",
                            "rawdesc": "(Argument) The x position of the second point.",
                            "start": [
                                640,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "(Argument) The y position of the second point.",
                            "finish": [
                                640,
                                43
                            ],
                            "name": "y2",
                            "rawdesc": "(Argument) The y position of the second point.",
                            "start": [
                                640,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                640,
                                48
                            ],
                            "start": [
                                640,
                                45
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTransforms multiple points from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoints)\n\n@*param* `x1` — (Argument) The x position of the first point.\n\n@*param* `y1` — (Argument) The y position of the first point.\n\n@*param* `x2` — (Argument) The x position of the second point.\n\n@*param* `y2` — (Argument) The y position of the second point.\n\n@*return* `x1` — (Result) The transformed x position of the first point.\n\n@*return* `y1` — (Result) The transformed y position of the first point.\n\n@*return* `x2` — (Result) The transformed x position of the second point.\n\n@*return* `y2` — (Result) The transformed y position of the second point.",
                    "finish": [
                        640,
                        53
                    ],
                    "rawdesc": "\nTransforms multiple points from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoints)",
                    "returns": [
                        {
                            "desc": "(Result) The transformed x position of the first point.",
                            "name": "x1",
                            "rawdesc": "(Result) The transformed x position of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "(Result) The transformed y position of the first point.",
                            "name": "y1",
                            "rawdesc": "(Result) The transformed y position of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "(Result) The transformed x position of the second point.",
                            "name": "x2",
                            "rawdesc": "(Result) The transformed x position of the second point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "(Result) The transformed y position of the second point.",
                            "name": "y2",
                            "rawdesc": "(Result) The transformed y position of the second point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        640,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLocalPoints(x1: number, y1: number, x2: number, y2: number, ...number)\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    640,
                    28
                ],
                "name": "getLocalPoints",
                "rawdesc": "\nTransforms multiple points from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalPoints)",
                "start": [
                    640,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransform a vector from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalVector)\n\n@*param* `worldX` — The vector x component in world coordinates.\n\n@*param* `worldY` — The vector y component in world coordinates.\n\n@*return* `localX` — The vector x component in local coordinates.\n\n@*return* `localY` — The vector y component in local coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                652,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                652,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The vector x component in world coordinates.",
                            "finish": [
                                652,
                                35
                            ],
                            "name": "worldX",
                            "rawdesc": "The vector x component in world coordinates.",
                            "start": [
                                652,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The vector y component in world coordinates.",
                            "finish": [
                                652,
                                43
                            ],
                            "name": "worldY",
                            "rawdesc": "The vector y component in world coordinates.",
                            "start": [
                                652,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTransform a vector from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalVector)\n\n@*param* `worldX` — The vector x component in world coordinates.\n\n@*param* `worldY` — The vector y component in world coordinates.\n\n@*return* `localX` — The vector x component in local coordinates.\n\n@*return* `localY` — The vector y component in local coordinates.",
                    "finish": [
                        652,
                        48
                    ],
                    "rawdesc": "\nTransform a vector from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalVector)",
                    "returns": [
                        {
                            "desc": "The vector x component in local coordinates.",
                            "name": "localX",
                            "rawdesc": "The vector x component in local coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The vector y component in local coordinates.",
                            "name": "localY",
                            "rawdesc": "The vector y component in local coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        652,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getLocalVector(worldX: number, worldY: number)\n  -> localX: number\n  2. localY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    652,
                    28
                ],
                "name": "getLocalVector",
                "rawdesc": "\nTransform a vector from world coordinates to local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getLocalVector)",
                "start": [
                    652,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the mass of the body.\n\nStatic bodies always have a mass of 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMass)\n\n@*return* `mass` — The mass of the body (in kilograms).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                663,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                663,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the mass of the body.\n\nStatic bodies always have a mass of 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMass)\n\n@*return* `mass` — The mass of the body (in kilograms).",
                    "finish": [
                        663,
                        27
                    ],
                    "rawdesc": "\nGet the mass of the body.\n\nStatic bodies always have a mass of 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMass)",
                    "returns": [
                        {
                            "desc": "The mass of the body (in kilograms).",
                            "name": "mass",
                            "rawdesc": "The mass of the body (in kilograms).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        663,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getMass()\n  -> mass: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    663,
                    21
                ],
                "name": "getMass",
                "rawdesc": "\nGet the mass of the body.\n\nStatic bodies always have a mass of 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMass)",
                "start": [
                    663,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the mass, its center, and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMassData)\n\n@*return* `x` — The x position of the center of mass.\n\n@*return* `y` — The y position of the center of mass.\n\n@*return* `mass` — The mass of the body.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                675,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                675,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns the mass, its center, and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMassData)\n\n@*return* `x` — The x position of the center of mass.\n\n@*return* `y` — The y position of the center of mass.\n\n@*return* `mass` — The mass of the body.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        675,
                        31
                    ],
                    "rawdesc": "\nReturns the mass, its center, and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMassData)",
                    "returns": [
                        {
                            "desc": "The x position of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x position of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y position of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the body.",
                            "name": "mass",
                            "rawdesc": "The mass of the body.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        675,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getMassData()\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    675,
                    25
                ],
                "name": "getMassData",
                "rawdesc": "\nReturns the mass, its center, and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getMassData)",
                "start": [
                    675,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getPosition)\n\n@*return* `x` — The x position.\n\n@*return* `y` — The y position.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                687,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                687,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getPosition)\n\n@*return* `x` — The x position.\n\n@*return* `y` — The y position.",
                    "finish": [
                        687,
                        31
                    ],
                    "rawdesc": "\nGet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getPosition)",
                    "returns": [
                        {
                            "desc": "The x position.",
                            "name": "x",
                            "rawdesc": "The x position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position.",
                            "name": "y",
                            "rawdesc": "The y position.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        687,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getPosition()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    687,
                    25
                ],
                "name": "getPosition",
                "rawdesc": "\nGet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getPosition)",
                "start": [
                    687,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getTransform)\n\n@*return* `x` — The x component of the position.\n\n@*return* `y` — The y component of the position.\n\n@*return* `angle` — The angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                700,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                700,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getTransform)\n\n@*return* `x` — The x component of the position.\n\n@*return* `y` — The y component of the position.\n\n@*return* `angle` — The angle in radians.",
                    "finish": [
                        700,
                        32
                    ],
                    "rawdesc": "\nGet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getTransform)",
                    "returns": [
                        {
                            "desc": "The x component of the position.",
                            "name": "x",
                            "rawdesc": "The x component of the position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position.",
                            "name": "y",
                            "rawdesc": "The y component of the position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The angle in radians.",
                            "name": "angle",
                            "rawdesc": "The angle in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        700,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getTransform()\n  -> x: number\n  2. y: number\n  3. angle: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    700,
                    26
                ],
                "name": "getTransform",
                "rawdesc": "\nGet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getTransform)",
                "start": [
                    700,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the type of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getType)\n\n@*return* `type` — The body type.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                709,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                709,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns the type of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getType)\n\n@*return* `type` — The body type.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "finish": [
                        709,
                        27
                    ],
                    "rawdesc": "\nReturns the type of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getType)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "returns": [
                        {
                            "desc": "The body type.",
                            "name": "type",
                            "rawdesc": "The body type.",
                            "type": "function.return",
                            "view": "\"dynamic\"|\"kinematic\"|\"static\""
                        }
                    ],
                    "start": [
                        709,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getType()\n  -> type: \"dynamic\"|\"kinematic\"|\"static\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    709,
                    21
                ],
                "name": "getType",
                "rawdesc": "\nReturns the type of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getType)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "start": [
                    709,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getUserData)\n\n@*return* `value` — The Lua value associated with the Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                718,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                718,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getUserData)\n\n@*return* `value` — The Lua value associated with the Body.",
                    "finish": [
                        718,
                        31
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Body.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Body.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        718,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    718,
                    25
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getUserData)",
                "start": [
                    718,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the World the body lives in.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorld)\n\n@*return* `world` — The world the body lives in.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                727,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                727,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets the World the body lives in.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorld)\n\n@*return* `world` — The world the body lives in.",
                    "finish": [
                        727,
                        28
                    ],
                    "rawdesc": "\nGets the World the body lives in.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorld)",
                    "returns": [
                        {
                            "desc": "The world the body lives in.",
                            "name": "world",
                            "rawdesc": "The world the body lives in.",
                            "type": "function.return",
                            "view": "love.World"
                        }
                    ],
                    "start": [
                        727,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getWorld()\n  -> world: love.World"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    727,
                    22
                ],
                "name": "getWorld",
                "rawdesc": "\nGets the World the body lives in.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorld)",
                "start": [
                    727,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the center of mass position in world coordinates.\n\nUse Body:getLocalCenter to get the center of mass in local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldCenter)\n\n@*return* `x` — The x coordinate of the center of mass.\n\n@*return* `y` — The y coordinate of the center of mass.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                739,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                739,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the center of mass position in world coordinates.\n\nUse Body:getLocalCenter to get the center of mass in local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldCenter)\n\n@*return* `x` — The x coordinate of the center of mass.\n\n@*return* `y` — The y coordinate of the center of mass.",
                    "finish": [
                        739,
                        34
                    ],
                    "rawdesc": "\nGet the center of mass position in world coordinates.\n\nUse Body:getLocalCenter to get the center of mass in local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldCenter)",
                    "returns": [
                        {
                            "desc": "The x coordinate of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x coordinate of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y coordinate of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        739,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getWorldCenter()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    739,
                    28
                ],
                "name": "getWorldCenter",
                "rawdesc": "\nGet the center of mass position in world coordinates.\n\nUse Body:getLocalCenter to get the center of mass in local coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldCenter)",
                "start": [
                    739,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransform a point from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoint)\n\n@*param* `localX` — The x position in local coordinates.\n\n@*param* `localY` — The y position in local coordinates.\n\n@*return* `worldX` — The x position in world coordinates.\n\n@*return* `worldY` — The y position in world coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                751,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                751,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position in local coordinates.",
                            "finish": [
                                751,
                                34
                            ],
                            "name": "localX",
                            "rawdesc": "The x position in local coordinates.",
                            "start": [
                                751,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position in local coordinates.",
                            "finish": [
                                751,
                                42
                            ],
                            "name": "localY",
                            "rawdesc": "The y position in local coordinates.",
                            "start": [
                                751,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTransform a point from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoint)\n\n@*param* `localX` — The x position in local coordinates.\n\n@*param* `localY` — The y position in local coordinates.\n\n@*return* `worldX` — The x position in world coordinates.\n\n@*return* `worldY` — The y position in world coordinates.",
                    "finish": [
                        751,
                        47
                    ],
                    "rawdesc": "\nTransform a point from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoint)",
                    "returns": [
                        {
                            "desc": "The x position in world coordinates.",
                            "name": "worldX",
                            "rawdesc": "The x position in world coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position in world coordinates.",
                            "name": "worldY",
                            "rawdesc": "The y position in world coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        751,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getWorldPoint(localX: number, localY: number)\n  -> worldX: number\n  2. worldY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    751,
                    27
                ],
                "name": "getWorldPoint",
                "rawdesc": "\nTransform a point from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoint)",
                "start": [
                    751,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransforms multiple points from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoints)\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `x1` — The transformed x position of the first point.\n\n@*return* `y1` — The transformed y position of the first point.\n\n@*return* `x2` — The transformed x position of the second point.\n\n@*return* `y2` — The transformed y position of the second point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                767,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                767,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                767,
                                31
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                767,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                767,
                                35
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                767,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                767,
                                39
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                767,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                767,
                                43
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                767,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTransforms multiple points from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoints)\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `x1` — The transformed x position of the first point.\n\n@*return* `y1` — The transformed y position of the first point.\n\n@*return* `x2` — The transformed x position of the second point.\n\n@*return* `y2` — The transformed y position of the second point.",
                    "finish": [
                        767,
                        48
                    ],
                    "rawdesc": "\nTransforms multiple points from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoints)",
                    "returns": [
                        {
                            "desc": "The transformed x position of the first point.",
                            "name": "x1",
                            "rawdesc": "The transformed x position of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The transformed y position of the first point.",
                            "name": "y1",
                            "rawdesc": "The transformed y position of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The transformed x position of the second point.",
                            "name": "x2",
                            "rawdesc": "The transformed x position of the second point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The transformed y position of the second point.",
                            "name": "y2",
                            "rawdesc": "The transformed y position of the second point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        767,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getWorldPoints(x1: number, y1: number, x2: number, y2: number)\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    767,
                    28
                ],
                "name": "getWorldPoints",
                "rawdesc": "\nTransforms multiple points from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldPoints)",
                "start": [
                    767,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransform a vector from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldVector)\n\n@*param* `localX` — The vector x component in local coordinates.\n\n@*param* `localY` — The vector y component in local coordinates.\n\n@*return* `worldX` — The vector x component in world coordinates.\n\n@*return* `worldY` — The vector y component in world coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                779,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                779,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The vector x component in local coordinates.",
                            "finish": [
                                779,
                                35
                            ],
                            "name": "localX",
                            "rawdesc": "The vector x component in local coordinates.",
                            "start": [
                                779,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The vector y component in local coordinates.",
                            "finish": [
                                779,
                                43
                            ],
                            "name": "localY",
                            "rawdesc": "The vector y component in local coordinates.",
                            "start": [
                                779,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTransform a vector from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldVector)\n\n@*param* `localX` — The vector x component in local coordinates.\n\n@*param* `localY` — The vector y component in local coordinates.\n\n@*return* `worldX` — The vector x component in world coordinates.\n\n@*return* `worldY` — The vector y component in world coordinates.",
                    "finish": [
                        779,
                        48
                    ],
                    "rawdesc": "\nTransform a vector from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldVector)",
                    "returns": [
                        {
                            "desc": "The vector x component in world coordinates.",
                            "name": "worldX",
                            "rawdesc": "The vector x component in world coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The vector y component in world coordinates.",
                            "name": "worldY",
                            "rawdesc": "The vector y component in world coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        779,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getWorldVector(localX: number, localY: number)\n  -> worldX: number\n  2. worldY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    779,
                    28
                ],
                "name": "getWorldVector",
                "rawdesc": "\nTransform a vector from local coordinates to world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getWorldVector)",
                "start": [
                    779,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the x position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getX)\n\n@*return* `x` — The x position in world coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                788,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                788,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the x position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getX)\n\n@*return* `x` — The x position in world coordinates.",
                    "finish": [
                        788,
                        24
                    ],
                    "rawdesc": "\nGet the x position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getX)",
                    "returns": [
                        {
                            "desc": "The x position in world coordinates.",
                            "name": "x",
                            "rawdesc": "The x position in world coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        788,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getX()\n  -> x: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    788,
                    18
                ],
                "name": "getX",
                "rawdesc": "\nGet the x position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getX)",
                "start": [
                    788,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the y position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getY)\n\n@*return* `y` — The y position in world coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                797,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                797,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the y position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getY)\n\n@*return* `y` — The y position in world coordinates.",
                    "finish": [
                        797,
                        24
                    ],
                    "rawdesc": "\nGet the y position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getY)",
                    "returns": [
                        {
                            "desc": "The y position in world coordinates.",
                            "name": "y",
                            "rawdesc": "The y position in world coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        797,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:getY()\n  -> y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    797,
                    18
                ],
                "name": "getY",
                "rawdesc": "\nGet the y position of the body in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:getY)",
                "start": [
                    797,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the body is actively used in the simulation.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isActive)\n\n@*return* `status` — True if the body is active or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                806,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                806,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns whether the body is actively used in the simulation.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isActive)\n\n@*return* `status` — True if the body is active or false if not.",
                    "finish": [
                        806,
                        28
                    ],
                    "rawdesc": "\nReturns whether the body is actively used in the simulation.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isActive)",
                    "returns": [
                        {
                            "desc": "True if the body is active or false if not.",
                            "name": "status",
                            "rawdesc": "True if the body is active or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        806,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isActive()\n  -> status: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    806,
                    22
                ],
                "name": "isActive",
                "rawdesc": "\nReturns whether the body is actively used in the simulation.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isActive)",
                "start": [
                    806,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the sleep status of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isAwake)\n\n@*return* `status` — True if the body is awake or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                815,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                815,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns the sleep status of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isAwake)\n\n@*return* `status` — True if the body is awake or false if not.",
                    "finish": [
                        815,
                        27
                    ],
                    "rawdesc": "\nReturns the sleep status of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isAwake)",
                    "returns": [
                        {
                            "desc": "True if the body is awake or false if not.",
                            "name": "status",
                            "rawdesc": "True if the body is awake or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        815,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isAwake()\n  -> status: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    815,
                    21
                ],
                "name": "isAwake",
                "rawdesc": "\nReturns the sleep status of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isAwake)",
                "start": [
                    815,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isBullet)\n\n@*return* `status` — The bullet status of the body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                834,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                834,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isBullet)\n\n@*return* `status` — The bullet status of the body.",
                    "finish": [
                        834,
                        28
                    ],
                    "rawdesc": "\nGet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isBullet)",
                    "returns": [
                        {
                            "desc": "The bullet status of the body.",
                            "name": "status",
                            "rawdesc": "The bullet status of the body.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        834,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isBullet()\n  -> status: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    834,
                    22
                ],
                "name": "isBullet",
                "rawdesc": "\nGet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isBullet)",
                "start": [
                    834,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Body is destroyed. Destroyed bodies cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isDestroyed)\n\n@*return* `destroyed` — Whether the Body is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                843,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                843,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets whether the Body is destroyed. Destroyed bodies cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isDestroyed)\n\n@*return* `destroyed` — Whether the Body is destroyed.",
                    "finish": [
                        843,
                        31
                    ],
                    "rawdesc": "\nGets whether the Body is destroyed. Destroyed bodies cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Body is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Body is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        843,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    843,
                    25
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Body is destroyed. Destroyed bodies cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isDestroyed)",
                "start": [
                    843,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the body rotation is locked.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isFixedRotation)\n\n@*return* `fixed` — True if the body's rotation is locked or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                852,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                852,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns whether the body rotation is locked.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isFixedRotation)\n\n@*return* `fixed` — True if the body's rotation is locked or false if not.",
                    "finish": [
                        852,
                        35
                    ],
                    "rawdesc": "\nReturns whether the body rotation is locked.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isFixedRotation)",
                    "returns": [
                        {
                            "desc": "True if the body's rotation is locked or false if not.",
                            "name": "fixed",
                            "rawdesc": "True if the body's rotation is locked or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        852,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isFixedRotation()\n  -> fixed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    852,
                    29
                ],
                "name": "isFixedRotation",
                "rawdesc": "\nReturns whether the body rotation is locked.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isFixedRotation)",
                "start": [
                    852,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the sleeping behaviour of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isSleepingAllowed)\n\n@*return* `allowed` — True if the body is allowed to sleep or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                861,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                861,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nReturns the sleeping behaviour of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isSleepingAllowed)\n\n@*return* `allowed` — True if the body is allowed to sleep or false if not.",
                    "finish": [
                        861,
                        37
                    ],
                    "rawdesc": "\nReturns the sleeping behaviour of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isSleepingAllowed)",
                    "returns": [
                        {
                            "desc": "True if the body is allowed to sleep or false if not.",
                            "name": "allowed",
                            "rawdesc": "True if the body is allowed to sleep or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        861,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isSleepingAllowed()\n  -> allowed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    861,
                    31
                ],
                "name": "isSleepingAllowed",
                "rawdesc": "\nReturns the sleeping behaviour of the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isSleepingAllowed)",
                "start": [
                    861,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Body is touching the given other Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isTouching)\n\n@*param* `otherbody` — The other body to check.\n\n@*return* `touching` — True if this body is touching the other body, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                871,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                871,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The other body to check.",
                            "finish": [
                                871,
                                34
                            ],
                            "name": "otherbody",
                            "rawdesc": "The other body to check.",
                            "start": [
                                871,
                                25
                            ],
                            "type": "local",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nGets whether the Body is touching the given other Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isTouching)\n\n@*param* `otherbody` — The other body to check.\n\n@*return* `touching` — True if this body is touching the other body, false otherwise.",
                    "finish": [
                        871,
                        39
                    ],
                    "rawdesc": "\nGets whether the Body is touching the given other Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isTouching)",
                    "returns": [
                        {
                            "desc": "True if this body is touching the other body, false otherwise.",
                            "name": "touching",
                            "rawdesc": "True if this body is touching the other body, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        871,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:isTouching(otherbody: love.Body)\n  -> touching: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    871,
                    24
                ],
                "name": "isTouching",
                "rawdesc": "\nGets whether the Body is touching the given other Body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:isTouching)",
                "start": [
                    871,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the mass of the body by recalculating it from the mass properties of the fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:resetMassData)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                879,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                879,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        }
                    ],
                    "desc": "\nResets the mass of the body by recalculating it from the mass properties of the fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:resetMassData)",
                    "finish": [
                        879,
                        33
                    ],
                    "rawdesc": "\nResets the mass of the body by recalculating it from the mass properties of the fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:resetMassData)",
                    "start": [
                        879,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:resetMassData()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    879,
                    27
                ],
                "name": "resetMassData",
                "rawdesc": "\nResets the mass of the body by recalculating it from the mass properties of the fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:resetMassData)",
                "start": [
                    879,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the body is active in the world.\n\nAn inactive body does not take part in the simulation. It will not move or cause any collisions.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setActive)\n\n@*param* `active` — If the body is active or not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                890,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                890,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "If the body is active or not.",
                            "finish": [
                                890,
                                30
                            ],
                            "name": "active",
                            "rawdesc": "If the body is active or not.",
                            "start": [
                                890,
                                24
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the body is active in the world.\n\nAn inactive body does not take part in the simulation. It will not move or cause any collisions.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setActive)\n\n@*param* `active` — If the body is active or not.",
                    "finish": [
                        890,
                        35
                    ],
                    "rawdesc": "\nSets whether the body is active in the world.\n\nAn inactive body does not take part in the simulation. It will not move or cause any collisions.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setActive)",
                    "start": [
                        890,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setActive(active: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    890,
                    23
                ],
                "name": "setActive",
                "rawdesc": "\nSets whether the body is active in the world.\n\nAn inactive body does not take part in the simulation. It will not move or cause any collisions.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setActive)",
                "start": [
                    890,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it from degrees, use math.rad.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\nIt is possible to cause a collision with another body by changing its angle.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngle)\n\n@*param* `angle` — The angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                905,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                905,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The angle in radians.",
                            "finish": [
                                905,
                                28
                            ],
                            "name": "angle",
                            "rawdesc": "The angle in radians.",
                            "start": [
                                905,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it from degrees, use math.rad.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\nIt is possible to cause a collision with another body by changing its angle.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngle)\n\n@*param* `angle` — The angle in radians.",
                    "finish": [
                        905,
                        33
                    ],
                    "rawdesc": "\nSet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it from degrees, use math.rad.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\nIt is possible to cause a collision with another body by changing its angle.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngle)",
                    "start": [
                        905,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setAngle(angle: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    905,
                    22
                ],
                "name": "setAngle",
                "rawdesc": "\nSet the angle of the body.\n\nThe angle is measured in radians. If you need to transform it from degrees, use math.rad.\n\nA value of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes ''clockwise'' from our point of view.\n\nIt is possible to cause a collision with another body by changing its angle.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngle)",
                "start": [
                    905,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the angular damping of a Body\n\nSee Body:getAngularDamping for a definition of angular damping.\n\nAngular damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will look unrealistic.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularDamping)\n\n@*param* `damping` — The new angular damping.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                918,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                918,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The new angular damping.",
                            "finish": [
                                918,
                                39
                            ],
                            "name": "damping",
                            "rawdesc": "The new angular damping.",
                            "start": [
                                918,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the angular damping of a Body\n\nSee Body:getAngularDamping for a definition of angular damping.\n\nAngular damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will look unrealistic.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularDamping)\n\n@*param* `damping` — The new angular damping.",
                    "finish": [
                        918,
                        44
                    ],
                    "rawdesc": "\nSets the angular damping of a Body\n\nSee Body:getAngularDamping for a definition of angular damping.\n\nAngular damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will look unrealistic.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularDamping)",
                    "start": [
                        918,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setAngularDamping(damping: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    918,
                    31
                ],
                "name": "setAngularDamping",
                "rawdesc": "\nSets the angular damping of a Body\n\nSee Body:getAngularDamping for a definition of angular damping.\n\nAngular damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will look unrealistic.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularDamping)",
                "start": [
                    918,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the angular velocity of a Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularVelocity)\n\n@*param* `w` — The new angular velocity, in radians per second",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                931,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                931,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The new angular velocity, in radians per second",
                            "finish": [
                                931,
                                34
                            ],
                            "name": "w",
                            "rawdesc": "The new angular velocity, in radians per second",
                            "start": [
                                931,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the angular velocity of a Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularVelocity)\n\n@*param* `w` — The new angular velocity, in radians per second",
                    "finish": [
                        931,
                        39
                    ],
                    "rawdesc": "\nSets the angular velocity of a Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularVelocity)",
                    "start": [
                        931,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setAngularVelocity(w: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    931,
                    32
                ],
                "name": "setAngularVelocity",
                "rawdesc": "\nSets the angular velocity of a Body.\n\nThe angular velocity is the ''rate of change of angle over time''.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAngularVelocity)",
                "start": [
                    931,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWakes the body up or puts it to sleep.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAwake)\n\n@*param* `awake` — The body sleep status.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                940,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                940,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The body sleep status.",
                            "finish": [
                                940,
                                28
                            ],
                            "name": "awake",
                            "rawdesc": "The body sleep status.",
                            "start": [
                                940,
                                23
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nWakes the body up or puts it to sleep.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAwake)\n\n@*param* `awake` — The body sleep status.",
                    "finish": [
                        940,
                        33
                    ],
                    "rawdesc": "\nWakes the body up or puts it to sleep.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAwake)",
                    "start": [
                        940,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setAwake(awake: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    940,
                    22
                ],
                "name": "setAwake",
                "rawdesc": "\nWakes the body up or puts it to sleep.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setAwake)",
                "start": [
                    940,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setBullet)\n\n@*param* `status` — The bullet status of the body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                959,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                959,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The bullet status of the body.",
                            "finish": [
                                959,
                                30
                            ],
                            "name": "status",
                            "rawdesc": "The bullet status of the body.",
                            "start": [
                                959,
                                24
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setBullet)\n\n@*param* `status` — The bullet status of the body.",
                    "finish": [
                        959,
                        35
                    ],
                    "rawdesc": "\nSet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setBullet)",
                    "start": [
                        959,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setBullet(status: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    959,
                    23
                ],
                "name": "setBullet",
                "rawdesc": "\nSet the bullet status of a body.\n\nThere are two methods to check for body collisions:\n\n*  at their location when the world is updated (default)\n\n*  using continuous collision detection (CCD)\n\nThe default method is efficient, but a body moving very quickly may sometimes jump over another body without producing a collision. A body that is set as a bullet will use CCD. This is less efficient, but is guaranteed not to jump when moving quickly.\n\nNote that static bodies (with zero mass) always use CCD, so your walls will not let a fast moving body pass through even if it is not a bullet.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setBullet)",
                "start": [
                    959,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet whether a body has fixed rotation.\n\nBodies with fixed rotation don't vary the speed at which they rotate. Calling this function causes the mass to be reset.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setFixedRotation)\n\n@*param* `isFixed` — Whether the body should have fixed rotation.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                970,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                970,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "Whether the body should have fixed rotation.",
                            "finish": [
                                970,
                                38
                            ],
                            "name": "isFixed",
                            "rawdesc": "Whether the body should have fixed rotation.",
                            "start": [
                                970,
                                31
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSet whether a body has fixed rotation.\n\nBodies with fixed rotation don't vary the speed at which they rotate. Calling this function causes the mass to be reset.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setFixedRotation)\n\n@*param* `isFixed` — Whether the body should have fixed rotation.",
                    "finish": [
                        970,
                        43
                    ],
                    "rawdesc": "\nSet whether a body has fixed rotation.\n\nBodies with fixed rotation don't vary the speed at which they rotate. Calling this function causes the mass to be reset.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setFixedRotation)",
                    "start": [
                        970,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setFixedRotation(isFixed: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    970,
                    30
                ],
                "name": "setFixedRotation",
                "rawdesc": "\nSet whether a body has fixed rotation.\n\nBodies with fixed rotation don't vary the speed at which they rotate. Calling this function causes the mass to be reset.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setFixedRotation)",
                "start": [
                    970,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new gravity scale factor for the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setGravityScale)\n\n@*param* `scale` — The new gravity scale factor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                979,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                979,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The new gravity scale factor.",
                            "finish": [
                                979,
                                35
                            ],
                            "name": "scale",
                            "rawdesc": "The new gravity scale factor.",
                            "start": [
                                979,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new gravity scale factor for the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setGravityScale)\n\n@*param* `scale` — The new gravity scale factor.",
                    "finish": [
                        979,
                        40
                    ],
                    "rawdesc": "\nSets a new gravity scale factor for the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setGravityScale)",
                    "start": [
                        979,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setGravityScale(scale: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    979,
                    29
                ],
                "name": "setGravityScale",
                "rawdesc": "\nSets a new gravity scale factor for the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setGravityScale)",
                "start": [
                    979,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the inertia of a body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setInertia)\n\n@*param* `inertia` — The new moment of inertia, in kilograms * pixel squared.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                988,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                988,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The new moment of inertia, in kilograms * pixel squared.",
                            "finish": [
                                988,
                                32
                            ],
                            "name": "inertia",
                            "rawdesc": "The new moment of inertia, in kilograms * pixel squared.",
                            "start": [
                                988,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the inertia of a body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setInertia)\n\n@*param* `inertia` — The new moment of inertia, in kilograms * pixel squared.",
                    "finish": [
                        988,
                        37
                    ],
                    "rawdesc": "\nSet the inertia of a body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setInertia)",
                    "start": [
                        988,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setInertia(inertia: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    988,
                    24
                ],
                "name": "setInertia",
                "rawdesc": "\nSet the inertia of a body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setInertia)",
                "start": [
                    988,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the linear damping of a Body\n\nSee Body:getLinearDamping for a definition of linear damping.\n\nLinear damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will make the objects look 'floaty'(if gravity is enabled).\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearDamping)\n\n@*param* `ld` — The new linear damping",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1001,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1001,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The new linear damping",
                            "finish": [
                                1001,
                                33
                            ],
                            "name": "ld",
                            "rawdesc": "The new linear damping",
                            "start": [
                                1001,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the linear damping of a Body\n\nSee Body:getLinearDamping for a definition of linear damping.\n\nLinear damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will make the objects look 'floaty'(if gravity is enabled).\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearDamping)\n\n@*param* `ld` — The new linear damping",
                    "finish": [
                        1001,
                        38
                    ],
                    "rawdesc": "\nSets the linear damping of a Body\n\nSee Body:getLinearDamping for a definition of linear damping.\n\nLinear damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will make the objects look 'floaty'(if gravity is enabled).\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearDamping)",
                    "start": [
                        1001,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setLinearDamping(ld: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1001,
                    30
                ],
                "name": "setLinearDamping",
                "rawdesc": "\nSets the linear damping of a Body\n\nSee Body:getLinearDamping for a definition of linear damping.\n\nLinear damping can take any value from 0 to infinity. It is recommended to stay between 0 and 0.1, though. Other values will make the objects look 'floaty'(if gravity is enabled).\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearDamping)",
                "start": [
                    1001,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new linear velocity for the Body.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearVelocity)\n\n@*param* `x` — The x-component of the velocity vector.\n\n@*param* `y` — The y-component of the velocity vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1013,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1013,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x-component of the velocity vector.",
                            "finish": [
                                1013,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the velocity vector.",
                            "start": [
                                1013,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the velocity vector.",
                            "finish": [
                                1013,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the velocity vector.",
                            "start": [
                                1013,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new linear velocity for the Body.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearVelocity)\n\n@*param* `x` — The x-component of the velocity vector.\n\n@*param* `y` — The y-component of the velocity vector.",
                    "finish": [
                        1013,
                        41
                    ],
                    "rawdesc": "\nSets a new linear velocity for the Body.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearVelocity)",
                    "start": [
                        1013,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setLinearVelocity(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1013,
                    31
                ],
                "name": "setLinearVelocity",
                "rawdesc": "\nSets a new linear velocity for the Body.\n\nThis function will not accumulate anything; any impulses previously applied since the last call to World:update will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setLinearVelocity)",
                "start": [
                    1013,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new body mass.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMass)\n\n@*param* `mass` — The mass, in kilograms.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1022,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1022,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The mass, in kilograms.",
                            "finish": [
                                1022,
                                26
                            ],
                            "name": "mass",
                            "rawdesc": "The mass, in kilograms.",
                            "start": [
                                1022,
                                22
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new body mass.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMass)\n\n@*param* `mass` — The mass, in kilograms.",
                    "finish": [
                        1022,
                        31
                    ],
                    "rawdesc": "\nSets a new body mass.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMass)",
                    "start": [
                        1022,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setMass(mass: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1022,
                    21
                ],
                "name": "setMass",
                "rawdesc": "\nSets a new body mass.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMass)",
                "start": [
                    1022,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOverrides the calculated mass data.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMassData)\n\n@*param* `x` — The x position of the center of mass.\n\n@*param* `y` — The y position of the center of mass.\n\n@*param* `mass` — The mass of the body.\n\n@*param* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1034,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1034,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the center of mass.",
                            "finish": [
                                1034,
                                27
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the center of mass.",
                            "start": [
                                1034,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the center of mass.",
                            "finish": [
                                1034,
                                30
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the center of mass.",
                            "start": [
                                1034,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the body.",
                            "finish": [
                                1034,
                                36
                            ],
                            "name": "mass",
                            "rawdesc": "The mass of the body.",
                            "start": [
                                1034,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "finish": [
                                1034,
                                45
                            ],
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "start": [
                                1034,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nOverrides the calculated mass data.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMassData)\n\n@*param* `x` — The x position of the center of mass.\n\n@*param* `y` — The y position of the center of mass.\n\n@*param* `mass` — The mass of the body.\n\n@*param* `inertia` — The rotational inertia.",
                    "finish": [
                        1034,
                        50
                    ],
                    "rawdesc": "\nOverrides the calculated mass data.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMassData)",
                    "start": [
                        1034,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setMassData(x: number, y: number, mass: number, inertia: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1034,
                    25
                ],
                "name": "setMassData",
                "rawdesc": "\nOverrides the calculated mass data.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setMassData)",
                "start": [
                    1034,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setPosition)\n\n@*param* `x` — The x position.\n\n@*param* `y` — The y position.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1048,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1048,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position.",
                            "finish": [
                                1048,
                                27
                            ],
                            "name": "x",
                            "rawdesc": "The x position.",
                            "start": [
                                1048,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position.",
                            "finish": [
                                1048,
                                30
                            ],
                            "name": "y",
                            "rawdesc": "The y position.",
                            "start": [
                                1048,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setPosition)\n\n@*param* `x` — The x position.\n\n@*param* `y` — The y position.",
                    "finish": [
                        1048,
                        35
                    ],
                    "rawdesc": "\nSet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setPosition)",
                    "start": [
                        1048,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setPosition(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1048,
                    25
                ],
                "name": "setPosition",
                "rawdesc": "\nSet the position of the body.\n\nNote that this may not be the center of mass of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setPosition)",
                "start": [
                    1048,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the sleeping behaviour of the body. Should sleeping be allowed, a body at rest will automatically sleep. A sleeping body is not simulated unless it collided with an awake body. Be wary that one can end up with a situation like a floating sleeping body if the floor was removed.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setSleepingAllowed)\n\n@*param* `allowed` — True if the body is allowed to sleep or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1057,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1057,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "True if the body is allowed to sleep or false if not.",
                            "finish": [
                                1057,
                                40
                            ],
                            "name": "allowed",
                            "rawdesc": "True if the body is allowed to sleep or false if not.",
                            "start": [
                                1057,
                                33
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets the sleeping behaviour of the body. Should sleeping be allowed, a body at rest will automatically sleep. A sleeping body is not simulated unless it collided with an awake body. Be wary that one can end up with a situation like a floating sleeping body if the floor was removed.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setSleepingAllowed)\n\n@*param* `allowed` — True if the body is allowed to sleep or false if not.",
                    "finish": [
                        1057,
                        45
                    ],
                    "rawdesc": "\nSets the sleeping behaviour of the body. Should sleeping be allowed, a body at rest will automatically sleep. A sleeping body is not simulated unless it collided with an awake body. Be wary that one can end up with a situation like a floating sleeping body if the floor was removed.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setSleepingAllowed)",
                    "start": [
                        1057,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setSleepingAllowed(allowed: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1057,
                    32
                ],
                "name": "setSleepingAllowed",
                "rawdesc": "\nSets the sleeping behaviour of the body. Should sleeping be allowed, a body at rest will automatically sleep. A sleeping body is not simulated unless it collided with an awake body. Be wary that one can end up with a situation like a floating sleeping body if the floor was removed.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setSleepingAllowed)",
                "start": [
                    1057,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setTransform)\n\n@*param* `x` — The x component of the position.\n\n@*param* `y` — The y component of the position.\n\n@*param* `angle` — The angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1072,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1072,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x component of the position.",
                            "finish": [
                                1072,
                                28
                            ],
                            "name": "x",
                            "rawdesc": "The x component of the position.",
                            "start": [
                                1072,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position.",
                            "finish": [
                                1072,
                                31
                            ],
                            "name": "y",
                            "rawdesc": "The y component of the position.",
                            "start": [
                                1072,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The angle in radians.",
                            "finish": [
                                1072,
                                38
                            ],
                            "name": "angle",
                            "rawdesc": "The angle in radians.",
                            "start": [
                                1072,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setTransform)\n\n@*param* `x` — The x component of the position.\n\n@*param* `y` — The y component of the position.\n\n@*param* `angle` — The angle in radians.",
                    "finish": [
                        1072,
                        43
                    ],
                    "rawdesc": "\nSet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setTransform)",
                    "start": [
                        1072,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setTransform(x: number, y: number, angle: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1072,
                    26
                ],
                "name": "setTransform",
                "rawdesc": "\nSet the position and angle of the body.\n\nNote that the position may not be the center of mass of the body. An angle of 0 radians will mean 'looking to the right'. Although radians increase counter-clockwise, the y axis points down so it becomes clockwise from our point of view.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setTransform)",
                "start": [
                    1072,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new body type.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setType)\n\n@*param* `type` — The new type.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1081,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1081,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The new type.",
                            "finish": [
                                1081,
                                26
                            ],
                            "name": "type",
                            "rawdesc": "The new type.",
                            "start": [
                                1081,
                                22
                            ],
                            "type": "local",
                            "view": "\"dynamic\"|\"kinematic\"|\"static\""
                        }
                    ],
                    "desc": "\nSets a new body type.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setType)\n\n@*param* `type` — The new type.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "finish": [
                        1081,
                        31
                    ],
                    "rawdesc": "\nSets a new body type.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setType)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "start": [
                        1081,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setType(type: \"dynamic\"|\"kinematic\"|\"static\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1081,
                    21
                ],
                "name": "setType",
                "rawdesc": "\nSets a new body type.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setType)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "start": [
                    1081,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Body.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setUserData)\n\n@*param* `value` — The Lua value to associate with the Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1092,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1092,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The Lua value to associate with the Body.",
                            "finish": [
                                1092,
                                31
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Body.",
                            "start": [
                                1092,
                                26
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Body.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setUserData)\n\n@*param* `value` — The Lua value to associate with the Body.",
                    "finish": [
                        1092,
                        36
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Body.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setUserData)",
                    "start": [
                        1092,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1092,
                    25
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Body.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setUserData)",
                "start": [
                    1092,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the x position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setX)\n\n@*param* `x` — The x position.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1103,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1103,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position.",
                            "finish": [
                                1103,
                                20
                            ],
                            "name": "x",
                            "rawdesc": "The x position.",
                            "start": [
                                1103,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the x position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setX)\n\n@*param* `x` — The x position.",
                    "finish": [
                        1103,
                        25
                    ],
                    "rawdesc": "\nSet the x position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setX)",
                    "start": [
                        1103,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setX(x: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1103,
                    18
                ],
                "name": "setX",
                "rawdesc": "\nSet the x position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setX)",
                "start": [
                    1103,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the y position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setY)\n\n@*param* `y` — The y position.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1114,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nBodies are objects with velocity and position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1114,
                                8
                            ],
                            "type": "self",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The y position.",
                            "finish": [
                                1114,
                                20
                            ],
                            "name": "y",
                            "rawdesc": "The y position.",
                            "start": [
                                1114,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the y position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setY)\n\n@*param* `y` — The y position.",
                    "finish": [
                        1114,
                        25
                    ],
                    "rawdesc": "\nSet the y position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setY)",
                    "start": [
                        1114,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Body:setY(y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1114,
                    18
                ],
                "name": "setY",
                "rawdesc": "\nSet the y position of the body.\n\nThis function cannot wake up the body.\n\n\n[Open in Browser](https://love2d.org/wiki/Body:setY)",
                "start": [
                    1114,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Body",
        "type": "type",
        "view": "love.Body"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \nlove.BodyType:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "finish": [
                    3212,
                    16
                ],
                "rawdesc": "```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \nlove.BodyType:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "start": [
                    3200,
                    10
                ],
                "type": "doc.alias",
                "view": "\"dynamic\"|\"kinematic\"|\"static\""
            }
        ],
        "fields": [],
        "name": "love.BodyType",
        "type": "type",
        "view": "love.BodyType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nlove.BufferMode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "finish": [
                    588,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nlove.BufferMode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "start": [
                    576,
                    10
                ],
                "type": "doc.alias",
                "view": "\"full\"|\"line\"|\"none\""
            }
        ],
        "fields": [],
        "name": "love.BufferMode",
        "type": "type",
        "view": "love.BufferMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nData object containing arbitrary bytes in an contiguous memory.\n\nThere are currently no LÖVE functions provided for manipulating the contents of a ByteData, but Data:getPointer can be used with LuaJIT's FFI to access and write to the contents directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            154,
                            36
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            154,
                            25
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    },
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            154,
                            47
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            154,
                            38
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    154,
                    47
                ],
                "rawdesc": "\nData object containing arbitrary bytes in an contiguous memory.\n\nThere are currently no LÖVE functions provided for manipulating the contents of a ByteData, but Data:getPointer can be used with LuaJIT's FFI to access and write to the contents directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "start": [
                    154,
                    10
                ],
                "type": "doc.class",
                "view": "love.ByteData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.ByteData",
        "type": "type",
        "view": "love.ByteData"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            1381,
                            35
                        ],
                        "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            1381,
                            23
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Texture"
                    },
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            1381,
                            50
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            1381,
                            37
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1381,
                            63
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1381,
                            52
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1381,
                    63
                ],
                "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    1381,
                    10
                ],
                "type": "doc.class",
                "view": "love.Canvas",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates mipmaps for the Canvas, based on the contents of the highest-resolution mipmap level.\n\nThe Canvas must be created with mipmaps set to a MipmapMode other than 'none' for this function to work. It should only be called while the Canvas is not the active render target.\n\nIf the mipmap mode is set to 'auto', this function is automatically called inside love.graphics.setCanvas when switching from this Canvas to another Canvas or to the main screen.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:generateMipmaps)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1394,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1394,
                                8
                            ],
                            "type": "self",
                            "view": "love.Canvas"
                        }
                    ],
                    "desc": "\nGenerates mipmaps for the Canvas, based on the contents of the highest-resolution mipmap level.\n\nThe Canvas must be created with mipmaps set to a MipmapMode other than 'none' for this function to work. It should only be called while the Canvas is not the active render target.\n\nIf the mipmap mode is set to 'auto', this function is automatically called inside love.graphics.setCanvas when switching from this Canvas to another Canvas or to the main screen.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:generateMipmaps)",
                    "finish": [
                        1394,
                        37
                    ],
                    "rawdesc": "\nGenerates mipmaps for the Canvas, based on the contents of the highest-resolution mipmap level.\n\nThe Canvas must be created with mipmaps set to a MipmapMode other than 'none' for this function to work. It should only be called while the Canvas is not the active render target.\n\nIf the mipmap mode is set to 'auto', this function is automatically called inside love.graphics.setCanvas when switching from this Canvas to another Canvas or to the main screen.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:generateMipmaps)",
                    "start": [
                        1394,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Canvas:generateMipmaps()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1394,
                    31
                ],
                "name": "generateMipmaps",
                "rawdesc": "\nGenerates mipmaps for the Canvas, based on the contents of the highest-resolution mipmap level.\n\nThe Canvas must be created with mipmaps set to a MipmapMode other than 'none' for this function to work. It should only be called while the Canvas is not the active render target.\n\nIf the mipmap mode is set to 'auto', this function is automatically called inside love.graphics.setCanvas when switching from this Canvas to another Canvas or to the main screen.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:generateMipmaps)",
                "start": [
                    1394,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3026,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3026,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Texture.",
                    "finish": [
                        3026,
                        34
                    ],
                    "rawdesc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)",
                    "returns": [
                        {
                            "desc": "The DPI scale factor of the Texture.",
                            "name": "dpiscale",
                            "rawdesc": "The DPI scale factor of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3026,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDPIScale()\n  -> dpiscale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3026,
                    28
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)",
                "start": [
                    3026,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)\n\n@*return* `depth` — The depth of the volume Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3035,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3035,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)\n\n@*return* `depth` — The depth of the volume Texture.",
                    "finish": [
                        3035,
                        31
                    ],
                    "rawdesc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)",
                    "returns": [
                        {
                            "desc": "The depth of the volume Texture.",
                            "name": "depth",
                            "rawdesc": "The depth of the volume Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3035,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDepth()\n  -> depth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3035,
                    25
                ],
                "name": "getDepth",
                "rawdesc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)",
                "start": [
                    3035,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n@*return* `compare` — The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3046,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3046,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n@*return* `compare` — The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        3046,
                        41
                    ],
                    "rawdesc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.",
                            "name": "compare",
                            "rawdesc": "The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        }
                    ],
                    "start": [
                        3046,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDepthSampleMode()\n  -> compare: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3046,
                    35
                ],
                "name": "getDepthSampleMode",
                "rawdesc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3046,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)\n\n@*return* `width` — The width of the Texture.\n\n@*return* `height` — The height of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3056,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3056,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)\n\n@*return* `width` — The width of the Texture.\n\n@*return* `height` — The height of the Texture.",
                    "finish": [
                        3056,
                        36
                    ],
                    "rawdesc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Texture.",
                            "name": "width",
                            "rawdesc": "The width of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Texture.",
                            "name": "height",
                            "rawdesc": "The height of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3056,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3056,
                    30
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)",
                "start": [
                    3056,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n@*return* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `mag` — Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3067,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3067,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n@*return* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `mag` — Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3067,
                        32
                    ],
                    "rawdesc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "name": "min",
                            "rawdesc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "name": "mag",
                            "rawdesc": "Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3067,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3067,
                    26
                ],
                "name": "getFilter",
                "rawdesc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3067,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n@*return* `format` — The pixel format the Texture was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3076,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3076,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n@*return* `format` — The pixel format the Texture was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "finish": [
                        3076,
                        32
                    ],
                    "rawdesc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "returns": [
                        {
                            "desc": "The pixel format the Texture was created with.",
                            "name": "format",
                            "rawdesc": "The pixel format the Texture was created with.",
                            "type": "function.return",
                            "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                        }
                    ],
                    "start": [
                        3076,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getFormat()\n  -> format: \"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3076,
                    26
                ],
                "name": "getFormat",
                "rawdesc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    3076,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)\n\n@*return* `height` — The height of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3085,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3085,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)\n\n@*return* `height` — The height of the Texture.",
                    "finish": [
                        3085,
                        32
                    ],
                    "rawdesc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Texture.",
                            "name": "height",
                            "rawdesc": "The height of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3085,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3085,
                    26
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)",
                "start": [
                    3085,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)\n\n@*return* `layers` — The number of layers in the Array Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3094,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3094,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)\n\n@*return* `layers` — The number of layers in the Array Texture.",
                    "finish": [
                        3094,
                        36
                    ],
                    "rawdesc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)",
                    "returns": [
                        {
                            "desc": "The number of layers in the Array Texture.",
                            "name": "layers",
                            "rawdesc": "The number of layers in the Array Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3094,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getLayerCount()\n  -> layers: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3094,
                    30
                ],
                "name": "getLayerCount",
                "rawdesc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)",
                "start": [
                    3094,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.\n\nThis may be different than the number used as an argument to love.graphics.newCanvas if the system running LÖVE doesn't support that number.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMSAA)\n\n@*return* `samples` — The number of multisample antialiasing samples used by the canvas when drawing to it.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1405,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1405,
                                8
                            ],
                            "type": "self",
                            "view": "love.Canvas"
                        }
                    ],
                    "desc": "\nGets the number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.\n\nThis may be different than the number used as an argument to love.graphics.newCanvas if the system running LÖVE doesn't support that number.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMSAA)\n\n@*return* `samples` — The number of multisample antialiasing samples used by the canvas when drawing to it.",
                    "finish": [
                        1405,
                        29
                    ],
                    "rawdesc": "\nGets the number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.\n\nThis may be different than the number used as an argument to love.graphics.newCanvas if the system running LÖVE doesn't support that number.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMSAA)",
                    "returns": [
                        {
                            "desc": "The number of multisample antialiasing samples used by the canvas when drawing to it.",
                            "name": "samples",
                            "rawdesc": "The number of multisample antialiasing samples used by the canvas when drawing to it.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1405,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Canvas:getMSAA()\n  -> samples: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1405,
                    23
                ],
                "name": "getMSAA",
                "rawdesc": "\nGets the number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.\n\nThis may be different than the number used as an argument to love.graphics.newCanvas if the system running LÖVE doesn't support that number.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMSAA)",
                "start": [
                    1405,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmaps in the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3103,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3103,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmaps in the Texture.",
                    "finish": [
                        3103,
                        37
                    ],
                    "rawdesc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)",
                    "returns": [
                        {
                            "desc": "The number of mipmaps in the Texture.",
                            "name": "mipmaps",
                            "rawdesc": "The number of mipmaps in the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3103,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getMipmapCount()\n  -> mipmaps: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3103,
                    31
                ],
                "name": "getMipmapCount",
                "rawdesc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)",
                "start": [
                    3103,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n@*return* `mode` — The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.\n\n@*return* `sharpness` — Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3113,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3113,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n@*return* `mode` — The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.\n\n@*return* `sharpness` — Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3113,
                        38
                    ],
                    "rawdesc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.",
                            "name": "mode",
                            "rawdesc": "The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.",
                            "name": "sharpness",
                            "rawdesc": "Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3113,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getMipmapFilter()\n  -> mode: \"linear\"|\"nearest\"\n  2. sharpness: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3113,
                    32
                ],
                "name": "getMipmapFilter",
                "rawdesc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3113,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the MipmapMode this Canvas was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMipmapMode)\n\n@*return* `mode` — The mipmap mode this Canvas was created with.\n\n```lua\n-- \n-- Controls whether a Canvas has mipmaps, and its behaviour when it does.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MipmapMode)\n-- \nmode:\n    | \"none\" -- The Canvas has no mipmaps.\n    | \"auto\" -- The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.\n    | \"manual\" -- The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1414,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1414,
                                8
                            ],
                            "type": "self",
                            "view": "love.Canvas"
                        }
                    ],
                    "desc": "\nGets the MipmapMode this Canvas was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMipmapMode)\n\n@*return* `mode` — The mipmap mode this Canvas was created with.\n\n```lua\n-- \n-- Controls whether a Canvas has mipmaps, and its behaviour when it does.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MipmapMode)\n-- \nmode:\n    | \"none\" -- The Canvas has no mipmaps.\n    | \"auto\" -- The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.\n    | \"manual\" -- The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.\n```",
                    "finish": [
                        1414,
                        35
                    ],
                    "rawdesc": "\nGets the MipmapMode this Canvas was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMipmapMode)\n\n\n```lua\n-- \n-- Controls whether a Canvas has mipmaps, and its behaviour when it does.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MipmapMode)\n-- \nmode:\n    | \"none\" -- The Canvas has no mipmaps.\n    | \"auto\" -- The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.\n    | \"manual\" -- The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.\n```",
                    "returns": [
                        {
                            "desc": "The mipmap mode this Canvas was created with.",
                            "name": "mode",
                            "rawdesc": "The mipmap mode this Canvas was created with.",
                            "type": "function.return",
                            "view": "\"auto\"|\"manual\"|\"none\""
                        }
                    ],
                    "start": [
                        1414,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Canvas:getMipmapMode()\n  -> mode: \"auto\"|\"manual\"|\"none\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1414,
                    29
                ],
                "name": "getMipmapMode",
                "rawdesc": "\nGets the MipmapMode this Canvas was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:getMipmapMode)\n\n\n```lua\n-- \n-- Controls whether a Canvas has mipmaps, and its behaviour when it does.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MipmapMode)\n-- \nmode:\n    | \"none\" -- The Canvas has no mipmaps.\n    | \"auto\" -- The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.\n    | \"manual\" -- The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.\n```",
                "start": [
                    1414,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3125,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3125,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                    "finish": [
                        3125,
                        41
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Texture, in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Texture, in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3125,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelDimensions()\n  -> pixelwidth: number\n  2. pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3125,
                    35
                ],
                "name": "getPixelDimensions",
                "rawdesc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)",
                "start": [
                    3125,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3136,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3136,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                    "finish": [
                        3136,
                        37
                    ],
                    "rawdesc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Texture, in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3136,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelHeight()\n  -> pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3136,
                    31
                ],
                "name": "getPixelHeight",
                "rawdesc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)",
                "start": [
                    3136,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.",
                    "finish": [
                        3147,
                        36
                    ],
                    "rawdesc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Texture, in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelWidth()\n  -> pixelwidth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3147,
                    30
                ],
                "name": "getPixelWidth",
                "rawdesc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)",
                "start": [
                    3147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n@*return* `texturetype` — The type of the Texture.\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3156,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3156,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n@*return* `texturetype` — The type of the Texture.\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                    "finish": [
                        3156,
                        37
                    ],
                    "rawdesc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Texture.",
                            "name": "texturetype",
                            "rawdesc": "The type of the Texture.",
                            "type": "function.return",
                            "view": "\"2d\"|\"array\"|\"cube\"|\"volume\""
                        }
                    ],
                    "start": [
                        3156,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getTextureType()\n  -> texturetype: \"2d\"|\"array\"|\"cube\"|\"volume\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3156,
                    31
                ],
                "name": "getTextureType",
                "rawdesc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "start": [
                    3156,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)\n\n@*return* `width` — The width of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3165,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3165,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)\n\n@*return* `width` — The width of the Texture.",
                    "finish": [
                        3165,
                        31
                    ],
                    "rawdesc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Texture.",
                            "name": "width",
                            "rawdesc": "The width of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3165,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3165,
                    25
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)",
                "start": [
                    3165,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n@*return* `horiz` — Horizontal wrapping mode of the texture.\n\n@*return* `vert` — Vertical wrapping mode of the texture.\n\n@*return* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3178,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3178,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n@*return* `horiz` — Horizontal wrapping mode of the texture.\n\n@*return* `vert` — Vertical wrapping mode of the texture.\n\n@*return* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "finish": [
                        3178,
                        30
                    ],
                    "rawdesc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "returns": [
                        {
                            "desc": "Horizontal wrapping mode of the texture.",
                            "name": "horiz",
                            "rawdesc": "Horizontal wrapping mode of the texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Vertical wrapping mode of the texture.",
                            "name": "vert",
                            "rawdesc": "Vertical wrapping mode of the texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Wrapping mode for the z-axis of a Volume texture.",
                            "name": "depth",
                            "rawdesc": "Wrapping mode for the z-axis of a Volume texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        }
                    ],
                    "start": [
                        3178,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getWrap()\n  -> horiz: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\"\n  2. vert: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\"\n  3. depth: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3178,
                    24
                ],
                "name": "getWrap",
                "rawdesc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3178,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)\n\n@*return* `readable` — Whether the Texture is readable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3191,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3191,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)\n\n@*return* `readable` — Whether the Texture is readable.",
                    "finish": [
                        3191,
                        33
                    ],
                    "rawdesc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)",
                    "returns": [
                        {
                            "desc": "Whether the Texture is readable.",
                            "name": "readable",
                            "rawdesc": "Whether the Texture is readable.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3191,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:isReadable()\n  -> readable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3191,
                    27
                ],
                "name": "isReadable",
                "rawdesc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)",
                "start": [
                    3191,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates ImageData from the contents of the Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:newImageData)\n\n\n---\n\n@*return* `data` — The new ImageData made from the Canvas' contents.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1424,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1424,
                                8
                            ],
                            "type": "self",
                            "view": "love.Canvas"
                        }
                    ],
                    "desc": "\nGenerates ImageData from the contents of the Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:newImageData)\n\n\n---\n\n@*return* `data` — The new ImageData made from the Canvas' contents.",
                    "finish": [
                        1424,
                        34
                    ],
                    "rawdesc": "\nGenerates ImageData from the contents of the Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:newImageData)",
                    "returns": [
                        {
                            "desc": "The new ImageData made from the Canvas' contents.",
                            "name": "data",
                            "rawdesc": "The new ImageData made from the Canvas' contents.",
                            "type": "function.return",
                            "view": "love.ImageData"
                        }
                    ],
                    "start": [
                        1424,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Canvas:newImageData()\n  -> data: love.ImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1424,
                    28
                ],
                "name": "newImageData",
                "rawdesc": "\nGenerates ImageData from the contents of the Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:newImageData)",
                "start": [
                    1424,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRender to the Canvas using a function.\n\nThis is a shortcut to love.graphics.setCanvas:\n\ncanvas:renderTo( func )\n\nis the same as\n\nlove.graphics.setCanvas( canvas )\n\nfunc()\n\nlove.graphics.setCanvas()\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:renderTo)\n\n@*param* `func` — A function performing drawing operations.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1445,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as \"render to texture\".\n\nBy drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.\n\nIn versions prior to love.graphics.isSupported(\"canvas\") could be used to check for support at runtime.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1445,
                                8
                            ],
                            "type": "self",
                            "view": "love.Canvas"
                        },
                        {
                            "desc": "A function performing drawing operations.",
                            "finish": [
                                1445,
                                29
                            ],
                            "name": "func",
                            "rawdesc": "A function performing drawing operations.",
                            "start": [
                                1445,
                                25
                            ],
                            "type": "local",
                            "view": "function"
                        }
                    ],
                    "desc": "\nRender to the Canvas using a function.\n\nThis is a shortcut to love.graphics.setCanvas:\n\ncanvas:renderTo( func )\n\nis the same as\n\nlove.graphics.setCanvas( canvas )\n\nfunc()\n\nlove.graphics.setCanvas()\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:renderTo)\n\n@*param* `func` — A function performing drawing operations.",
                    "finish": [
                        1445,
                        34
                    ],
                    "rawdesc": "\nRender to the Canvas using a function.\n\nThis is a shortcut to love.graphics.setCanvas:\n\ncanvas:renderTo( func )\n\nis the same as\n\nlove.graphics.setCanvas( canvas )\n\nfunc()\n\nlove.graphics.setCanvas()\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:renderTo)",
                    "start": [
                        1445,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Canvas:renderTo(func: function)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1445,
                    24
                ],
                "name": "renderTo",
                "rawdesc": "\nRender to the Canvas using a function.\n\nThis is a shortcut to love.graphics.setCanvas:\n\ncanvas:renderTo( func )\n\nis the same as\n\nlove.graphics.setCanvas( canvas )\n\nfunc()\n\nlove.graphics.setCanvas()\n\n\n[Open in Browser](https://love2d.org/wiki/Canvas:renderTo)",
                "start": [
                    1445,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n@*param* `compare` — The comparison mode used when sampling from this texture in a shader.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3204,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3204,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The comparison mode used when sampling from this texture in a shader.",
                            "finish": [
                                3204,
                                43
                            ],
                            "name": "compare",
                            "rawdesc": "The comparison mode used when sampling from this texture in a shader.",
                            "start": [
                                3204,
                                36
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        }
                    ],
                    "desc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n@*param* `compare` — The comparison mode used when sampling from this texture in a shader.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        3204,
                        48
                    ],
                    "rawdesc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        3204,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setDepthSampleMode(compare: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3204,
                    35
                ],
                "name": "setDepthSampleMode",
                "rawdesc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3204,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n@*param* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*param* `mag` — Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering to use.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3215,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3215,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "finish": [
                                3215,
                                30
                            ],
                            "name": "min",
                            "rawdesc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "start": [
                                3215,
                                27
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).",
                            "finish": [
                                3215,
                                35
                            ],
                            "name": "mag",
                            "rawdesc": "Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).",
                            "start": [
                                3215,
                                32
                            ],
                            "type": "local",
                            "view": "(\"linear\"|\"nearest\")?"
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering to use.",
                            "finish": [
                                3215,
                                47
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering to use.",
                            "start": [
                                3215,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n@*param* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*param* `mag` — Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering to use.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3215,
                        52
                    ],
                    "rawdesc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3215,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setFilter(min: \"linear\"|\"nearest\", mag?: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3215,
                    26
                ],
                "name": "setFilter",
                "rawdesc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3215,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n@*param* `filtermode` — The filter mode to use in between mipmap levels. 'nearest' will often give better performance.\n\n@*param* `sharpness` — A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3232,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3232,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The filter mode to use in between mipmap levels. 'nearest' will often give better performance.",
                            "finish": [
                                3232,
                                43
                            ],
                            "name": "filtermode",
                            "rawdesc": "The filter mode to use in between mipmap levels. 'nearest' will often give better performance.",
                            "start": [
                                3232,
                                33
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.",
                            "finish": [
                                3232,
                                54
                            ],
                            "name": "sharpness",
                            "rawdesc": "A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.",
                            "start": [
                                3232,
                                45
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n@*param* `filtermode` — The filter mode to use in between mipmap levels. 'nearest' will often give better performance.\n\n@*param* `sharpness` — A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3232,
                        59
                    ],
                    "rawdesc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3232,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setMipmapFilter(filtermode: \"linear\"|\"nearest\", sharpness?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3232,
                    32
                ],
                "name": "setMipmapFilter",
                "rawdesc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3232,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n@*param* `horiz` — Horizontal wrapping mode of the texture.\n\n@*param* `vert` — Vertical wrapping mode of the texture.\n\n@*param* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3247,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3247,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "Horizontal wrapping mode of the texture.",
                            "finish": [
                                3247,
                                30
                            ],
                            "name": "horiz",
                            "rawdesc": "Horizontal wrapping mode of the texture.",
                            "start": [
                                3247,
                                25
                            ],
                            "type": "local",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Vertical wrapping mode of the texture.",
                            "finish": [
                                3247,
                                36
                            ],
                            "name": "vert",
                            "rawdesc": "Vertical wrapping mode of the texture.",
                            "start": [
                                3247,
                                32
                            ],
                            "type": "local",
                            "view": "(\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")?"
                        },
                        {
                            "desc": "Wrapping mode for the z-axis of a Volume texture.",
                            "finish": [
                                3247,
                                43
                            ],
                            "name": "depth",
                            "rawdesc": "Wrapping mode for the z-axis of a Volume texture.",
                            "start": [
                                3247,
                                38
                            ],
                            "type": "local",
                            "view": "(\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")?"
                        }
                    ],
                    "desc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n@*param* `horiz` — Horizontal wrapping mode of the texture.\n\n@*param* `vert` — Vertical wrapping mode of the texture.\n\n@*param* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "finish": [
                        3247,
                        48
                    ],
                    "rawdesc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "start": [
                        3247,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setWrap(horiz: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\", vert?: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\", depth?: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3247,
                    24
                ],
                "name": "setWrap",
                "rawdesc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3247,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Canvas",
        "type": "type",
        "view": "love.Canvas"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            1124,
                            37
                        ],
                        "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            1124,
                            27
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Shape"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1124,
                            50
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1124,
                            39
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1124,
                    50
                ],
                "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1124,
                    10
                ],
                "type": "doc.class",
                "view": "love.ChainShape",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2689,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2689,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2689,
                                29
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2689,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2689,
                                33
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2689,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2689,
                                37
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2689,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child to compute the bounding box of.",
                            "finish": [
                                2689,
                                49
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child to compute the bounding box of.",
                            "start": [
                                2689,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                    "finish": [
                        2689,
                        54
                    ],
                    "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                    "returns": [
                        {
                            "desc": "The x position of the top-left point.",
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2689,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeAABB(tx: number, ty: number, tr: number, childIndex?: number)\n  -> topLeftX: number\n  2. topLeftY: number\n  3. bottomRightX: number\n  4. bottomRightY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2689,
                    26
                ],
                "name": "computeAABB",
                "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                "start": [
                    2689,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2702,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2702,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The shape density.",
                            "finish": [
                                2702,
                                34
                            ],
                            "name": "density",
                            "rawdesc": "The shape density.",
                            "start": [
                                2702,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        2702,
                        39
                    ],
                    "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                    "returns": [
                        {
                            "desc": "The x postition of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y postition of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the shape.",
                            "name": "mass",
                            "rawdesc": "The mass of the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2702,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeMass(density: number)\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2702,
                    26
                ],
                "name": "computeMass",
                "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                "start": [
                    2702,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2711,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2711,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                    "finish": [
                        2711,
                        34
                    ],
                    "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                    "returns": [
                        {
                            "desc": "The number of children.",
                            "name": "count",
                            "rawdesc": "The number of children.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2711,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getChildCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2711,
                    28
                ],
                "name": "getChildCount",
                "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                "start": [
                    2711,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a child of the shape as an EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getChildEdge)\n\n@*param* `index` — The index of the child.\n\n@*return* `shape` — The child as an EdgeShape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1135,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1135,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        },
                        {
                            "desc": "The index of the child.",
                            "finish": [
                                1135,
                                38
                            ],
                            "name": "index",
                            "rawdesc": "The index of the child.",
                            "start": [
                                1135,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns a child of the shape as an EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getChildEdge)\n\n@*param* `index` — The index of the child.\n\n@*return* `shape` — The child as an EdgeShape.",
                    "finish": [
                        1135,
                        43
                    ],
                    "rawdesc": "\nReturns a child of the shape as an EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getChildEdge)",
                    "returns": [
                        {
                            "desc": "The child as an EdgeShape.",
                            "name": "shape",
                            "rawdesc": "The child as an EdgeShape.",
                            "type": "function.return",
                            "view": "love.EdgeShape"
                        }
                    ],
                    "start": [
                        1135,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:getChildEdge(index: number)\n  -> shape: love.EdgeShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1135,
                    32
                ],
                "name": "getChildEdge",
                "rawdesc": "\nReturns a child of the shape as an EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getChildEdge)",
                "start": [
                    1135,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getNextVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1147,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        }
                    ],
                    "desc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getNextVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.",
                    "finish": [
                        1147,
                        39
                    ],
                    "rawdesc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getNextVertex)",
                    "returns": [
                        {
                            "desc": "The x-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.",
                            "name": "x",
                            "rawdesc": "The x-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.",
                            "name": "y",
                            "rawdesc": "The y-component of the vertex, or nil if ChainShape:setNextVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:getNextVertex()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1147,
                    33
                ],
                "name": "getNextVertex",
                "rawdesc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getNextVertex)",
                "start": [
                    1147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a point of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoint)\n\n@*param* `index` — The index of the point to return.\n\n@*return* `x` — The x-coordinate of the point.\n\n@*return* `y` — The y-coordinate of the point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1158,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1158,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        },
                        {
                            "desc": "The index of the point to return.",
                            "finish": [
                                1158,
                                34
                            ],
                            "name": "index",
                            "rawdesc": "The index of the point to return.",
                            "start": [
                                1158,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns a point of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoint)\n\n@*param* `index` — The index of the point to return.\n\n@*return* `x` — The x-coordinate of the point.\n\n@*return* `y` — The y-coordinate of the point.",
                    "finish": [
                        1158,
                        39
                    ],
                    "rawdesc": "\nReturns a point of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoint)",
                    "returns": [
                        {
                            "desc": "The x-coordinate of the point.",
                            "name": "x",
                            "rawdesc": "The x-coordinate of the point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the point.",
                            "name": "y",
                            "rawdesc": "The y-coordinate of the point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1158,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:getPoint(index: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1158,
                    28
                ],
                "name": "getPoint",
                "rawdesc": "\nReturns a point of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoint)",
                "start": [
                    1158,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns all points of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoints)\n\n@*return* `x1` — The x-coordinate of the first point.\n\n@*return* `y1` — The y-coordinate of the first point.\n\n@*return* `x2` — The x-coordinate of the second point.\n\n@*return* `y2` — The y-coordinate of the second point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1170,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1170,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        }
                    ],
                    "desc": "\nReturns all points of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoints)\n\n@*return* `x1` — The x-coordinate of the first point.\n\n@*return* `y1` — The y-coordinate of the first point.\n\n@*return* `x2` — The x-coordinate of the second point.\n\n@*return* `y2` — The y-coordinate of the second point.",
                    "finish": [
                        1170,
                        35
                    ],
                    "rawdesc": "\nReturns all points of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoints)",
                    "returns": [
                        {
                            "desc": "The x-coordinate of the first point.",
                            "name": "x1",
                            "rawdesc": "The x-coordinate of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the first point.",
                            "name": "y1",
                            "rawdesc": "The y-coordinate of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-coordinate of the second point.",
                            "name": "x2",
                            "rawdesc": "The x-coordinate of the second point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the second point.",
                            "name": "y2",
                            "rawdesc": "The y-coordinate of the second point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1170,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:getPoints()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1170,
                    29
                ],
                "name": "getPoints",
                "rawdesc": "\nReturns all points of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPoints)",
                "start": [
                    1170,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPreviousVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1182,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1182,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        }
                    ],
                    "desc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPreviousVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.",
                    "finish": [
                        1182,
                        43
                    ],
                    "rawdesc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPreviousVertex)",
                    "returns": [
                        {
                            "desc": "The x-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.",
                            "name": "x",
                            "rawdesc": "The x-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.",
                            "name": "y",
                            "rawdesc": "The y-component of the vertex, or nil if ChainShape:setPreviousVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1182,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:getPreviousVertex()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1182,
                    37
                ],
                "name": "getPreviousVertex",
                "rawdesc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous ChainShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getPreviousVertex)",
                "start": [
                    1182,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2720,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2720,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                    "finish": [
                        2720,
                        30
                    ],
                    "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                    "returns": [
                        {
                            "desc": "The radius of the shape.",
                            "name": "radius",
                            "rawdesc": "The radius of the shape.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2720,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getRadius()\n  -> radius: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2720,
                    24
                ],
                "name": "getRadius",
                "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                "start": [
                    2720,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2731,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2731,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "finish": [
                        2731,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Shape.",
                            "name": "type",
                            "rawdesc": "The type of the Shape.",
                            "type": "function.return",
                            "view": "\"chain\"|\"circle\"|\"edge\"|\"polygon\""
                        }
                    ],
                    "start": [
                        2731,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getType()\n  -> type: \"chain\"|\"circle\"|\"edge\"|\"polygon\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2731,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "start": [
                    2731,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of vertices the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getVertexCount)\n\n@*return* `count` — The number of vertices.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1191,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1191,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        }
                    ],
                    "desc": "\nReturns the number of vertices the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getVertexCount)\n\n@*return* `count` — The number of vertices.",
                    "finish": [
                        1191,
                        40
                    ],
                    "rawdesc": "\nReturns the number of vertices the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getVertexCount)",
                    "returns": [
                        {
                            "desc": "The number of vertices.",
                            "name": "count",
                            "rawdesc": "The number of vertices.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1191,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:getVertexCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1191,
                    34
                ],
                "name": "getVertexCount",
                "rawdesc": "\nReturns the number of vertices the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:getVertexCount)",
                "start": [
                    1191,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2759,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2759,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The x position of the input line starting point.",
                            "finish": [
                                2759,
                                25
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the input line starting point.",
                            "start": [
                                2759,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line starting point.",
                            "finish": [
                                2759,
                                29
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the input line starting point.",
                            "start": [
                                2759,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the input line end point.",
                            "finish": [
                                2759,
                                33
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the input line end point.",
                            "start": [
                                2759,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line end point.",
                            "finish": [
                                2759,
                                37
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the input line end point.",
                            "start": [
                                2759,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Ray length parameter.",
                            "finish": [
                                2759,
                                50
                            ],
                            "name": "maxFraction",
                            "rawdesc": "Ray length parameter.",
                            "start": [
                                2759,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2759,
                                54
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2759,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2759,
                                58
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2759,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2759,
                                62
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2759,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child the ray gets cast against.",
                            "finish": [
                                2759,
                                74
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child the ray gets cast against.",
                            "start": [
                                2759,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                    "finish": [
                        2759,
                        79
                    ],
                    "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "name": "xn",
                            "rawdesc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "name": "yn",
                            "rawdesc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "name": "fraction",
                            "rawdesc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2759,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:rayCast(x1: number, y1: number, x2: number, y2: number, maxFraction: number, tx: number, ty: number, tr: number, childIndex?: number)\n  -> xn: number\n  2. yn: number\n  3. fraction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2759,
                    22
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                "start": [
                    2759,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setNextVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1203,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1203,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        },
                        {
                            "desc": "The x-component of the vertex.",
                            "finish": [
                                1203,
                                35
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the vertex.",
                            "start": [
                                1203,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex.",
                            "finish": [
                                1203,
                                38
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the vertex.",
                            "start": [
                                1203,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setNextVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                    "finish": [
                        1203,
                        43
                    ],
                    "rawdesc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setNextVertex)",
                    "start": [
                        1203,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:setNextVertex(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1203,
                    33
                ],
                "name": "setNextVertex",
                "rawdesc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setNextVertex)",
                "start": [
                    1203,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setPreviousVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1215,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\nUnlike the PolygonShape, the ChainShape does not have a vertices limit or has to form a convex shape, but self intersections are not supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1215,
                                8
                            ],
                            "type": "self",
                            "view": "love.ChainShape"
                        },
                        {
                            "desc": "The x-component of the vertex.",
                            "finish": [
                                1215,
                                39
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the vertex.",
                            "start": [
                                1215,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex.",
                            "finish": [
                                1215,
                                42
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the vertex.",
                            "start": [
                                1215,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setPreviousVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                    "finish": [
                        1215,
                        47
                    ],
                    "rawdesc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setPreviousVertex)",
                    "start": [
                        1215,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ChainShape:setPreviousVertex(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1215,
                    37
                ],
                "name": "setPreviousVertex",
                "rawdesc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/ChainShape:setPreviousVertex)",
                "start": [
                    1215,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2773,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2773,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "Translates the shape along the x-axis.",
                            "finish": [
                                2773,
                                27
                            ],
                            "name": "tx",
                            "rawdesc": "Translates the shape along the x-axis.",
                            "start": [
                                2773,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Translates the shape along the y-axis.",
                            "finish": [
                                2773,
                                31
                            ],
                            "name": "ty",
                            "rawdesc": "Translates the shape along the y-axis.",
                            "start": [
                                2773,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Rotates the shape.",
                            "finish": [
                                2773,
                                35
                            ],
                            "name": "tr",
                            "rawdesc": "Rotates the shape.",
                            "start": [
                                2773,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the point.",
                            "finish": [
                                2773,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the point.",
                            "start": [
                                2773,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the point.",
                            "finish": [
                                2773,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the point.",
                            "start": [
                                2773,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                    "finish": [
                        2773,
                        46
                    ],
                    "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                    "returns": [
                        {
                            "desc": "True if inside, false if outside",
                            "name": "hit",
                            "rawdesc": "True if inside, false if outside",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2773,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:testPoint(tx: number, ty: number, tr: number, x: number, y: number)\n  -> hit: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2773,
                    24
                ],
                "name": "testPoint",
                "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                "start": [
                    2773,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.ChainShape",
        "type": "type",
        "view": "love.ChainShape"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            56,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            56,
                            24
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    56,
                    35
                ],
                "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "start": [
                    56,
                    10
                ],
                "type": "doc.class",
                "view": "love.Channel",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClears all the messages in the Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:clear)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                65,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                65,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        }
                    ],
                    "desc": "\nClears all the messages in the Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:clear)",
                    "finish": [
                        65,
                        28
                    ],
                    "rawdesc": "\nClears all the messages in the Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:clear)",
                    "start": [
                        65,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    65,
                    22
                ],
                "name": "clear",
                "rawdesc": "\nClears all the messages in the Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:clear)",
                "start": [
                    65,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt waits until a message is in the queue then returns the message value.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:demand)\n\n\n---\n\n@*return* `value` — The contents of the message.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                77,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                77,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        }
                    ],
                    "desc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt waits until a message is in the queue then returns the message value.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:demand)\n\n\n---\n\n@*return* `value` — The contents of the message.",
                    "finish": [
                        77,
                        29
                    ],
                    "rawdesc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt waits until a message is in the queue then returns the message value.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:demand)",
                    "returns": [
                        {
                            "desc": "The contents of the message.",
                            "name": "value",
                            "rawdesc": "The contents of the message.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        77,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:demand()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    77,
                    23
                ],
                "name": "demand",
                "rawdesc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt waits until a message is in the queue then returns the message value.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:demand)",
                "start": [
                    77,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRetrieves the number of messages in the thread Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:getCount)\n\n@*return* `count` — The number of messages in the queue.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                86,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                86,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        }
                    ],
                    "desc": "\nRetrieves the number of messages in the thread Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:getCount)\n\n@*return* `count` — The number of messages in the queue.",
                    "finish": [
                        86,
                        31
                    ],
                    "rawdesc": "\nRetrieves the number of messages in the thread Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:getCount)",
                    "returns": [
                        {
                            "desc": "The number of messages in the queue.",
                            "name": "count",
                            "rawdesc": "The number of messages in the queue.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        86,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:getCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    86,
                    25
                ],
                "name": "getCount",
                "rawdesc": "\nRetrieves the number of messages in the thread Channel queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:getCount)",
                "start": [
                    86,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether a pushed value has been popped or otherwise removed from the Channel.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:hasRead)\n\n@*param* `id` — An id value previously returned by Channel:push.\n\n@*return* `hasread` — Whether the value represented by the id has been removed from the Channel via Channel:pop, Channel:demand, or Channel:clear.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                96,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                96,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        },
                        {
                            "desc": "An id value previously returned by Channel:push.",
                            "finish": [
                                96,
                                27
                            ],
                            "name": "id",
                            "rawdesc": "An id value previously returned by Channel:push.",
                            "start": [
                                96,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets whether a pushed value has been popped or otherwise removed from the Channel.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:hasRead)\n\n@*param* `id` — An id value previously returned by Channel:push.\n\n@*return* `hasread` — Whether the value represented by the id has been removed from the Channel via Channel:pop, Channel:demand, or Channel:clear.",
                    "finish": [
                        96,
                        32
                    ],
                    "rawdesc": "\nGets whether a pushed value has been popped or otherwise removed from the Channel.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:hasRead)",
                    "returns": [
                        {
                            "desc": "Whether the value represented by the id has been removed from the Channel via Channel:pop, Channel:demand, or Channel:clear.",
                            "name": "hasread",
                            "rawdesc": "Whether the value represented by the id has been removed from the Channel via Channel:pop, Channel:demand, or Channel:clear.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        96,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:hasRead(id: number)\n  -> hasread: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    96,
                    24
                ],
                "name": "hasRead",
                "rawdesc": "\nGets whether a pushed value has been popped or otherwise removed from the Channel.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:hasRead)",
                "start": [
                    96,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRetrieves the value of a Channel message, but leaves it in the queue.\n\nIt returns nil if there's no message in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:peek)\n\n@*return* `value` — The contents of the message.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                107,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                107,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        }
                    ],
                    "desc": "\nRetrieves the value of a Channel message, but leaves it in the queue.\n\nIt returns nil if there's no message in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:peek)\n\n@*return* `value` — The contents of the message.",
                    "finish": [
                        107,
                        27
                    ],
                    "rawdesc": "\nRetrieves the value of a Channel message, but leaves it in the queue.\n\nIt returns nil if there's no message in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:peek)",
                    "returns": [
                        {
                            "desc": "The contents of the message.",
                            "name": "value",
                            "rawdesc": "The contents of the message.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        107,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:peek()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    107,
                    21
                ],
                "name": "peek",
                "rawdesc": "\nRetrieves the value of a Channel message, but leaves it in the queue.\n\nIt returns nil if there's no message in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:peek)",
                "start": [
                    107,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExecutes the specified function atomically with respect to this Channel.\n\nCalling multiple methods in a row on the same Channel is often useful. However if multiple Threads are calling this Channel's methods at the same time, the different calls on each Thread might end up interleaved (e.g. one or more of the second thread's calls may happen in between the first thread's calls.)\n\nThis method avoids that issue by making sure the Thread calling the method has exclusive access to the Channel until the specified function has returned.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:performAtomic)\n\n@*param* `func` — The function to call, the form of function(channel, arg1, arg2, ...) end. The Channel is passed as the first argument to the function when it is called.\n\n@*param* `arg1` — Additional arguments that the given function will receive when it is called.\n\n@*return* `ret1` — The first return value of the given function (if any.)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                123,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                123,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        },
                        {
                            "desc": "The function to call, the form of function(channel, arg1, arg2, ...) end. The Channel is passed as the first argument to the function when it is called.",
                            "finish": [
                                123,
                                35
                            ],
                            "name": "func",
                            "rawdesc": "The function to call, the form of function(channel, arg1, arg2, ...) end. The Channel is passed as the first argument to the function when it is called.",
                            "start": [
                                123,
                                31
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "desc": "Additional arguments that the given function will receive when it is called.",
                            "finish": [
                                123,
                                41
                            ],
                            "name": "arg1",
                            "rawdesc": "Additional arguments that the given function will receive when it is called.",
                            "start": [
                                123,
                                37
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                123,
                                46
                            ],
                            "start": [
                                123,
                                43
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nExecutes the specified function atomically with respect to this Channel.\n\nCalling multiple methods in a row on the same Channel is often useful. However if multiple Threads are calling this Channel's methods at the same time, the different calls on each Thread might end up interleaved (e.g. one or more of the second thread's calls may happen in between the first thread's calls.)\n\nThis method avoids that issue by making sure the Thread calling the method has exclusive access to the Channel until the specified function has returned.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:performAtomic)\n\n@*param* `func` — The function to call, the form of function(channel, arg1, arg2, ...) end. The Channel is passed as the first argument to the function when it is called.\n\n@*param* `arg1` — Additional arguments that the given function will receive when it is called.\n\n@*return* `ret1` — The first return value of the given function (if any.)",
                    "finish": [
                        123,
                        51
                    ],
                    "rawdesc": "\nExecutes the specified function atomically with respect to this Channel.\n\nCalling multiple methods in a row on the same Channel is often useful. However if multiple Threads are calling this Channel's methods at the same time, the different calls on each Thread might end up interleaved (e.g. one or more of the second thread's calls may happen in between the first thread's calls.)\n\nThis method avoids that issue by making sure the Thread calling the method has exclusive access to the Channel until the specified function has returned.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:performAtomic)",
                    "returns": [
                        {
                            "desc": "The first return value of the given function (if any.)",
                            "name": "ret1",
                            "rawdesc": "The first return value of the given function (if any.)",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        123,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:performAtomic(func: function, arg1: any, ...any)\n  -> ret1: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    123,
                    30
                ],
                "name": "performAtomic",
                "rawdesc": "\nExecutes the specified function atomically with respect to this Channel.\n\nCalling multiple methods in a row on the same Channel is often useful. However if multiple Threads are calling this Channel's methods at the same time, the different calls on each Thread might end up interleaved (e.g. one or more of the second thread's calls may happen in between the first thread's calls.)\n\nThis method avoids that issue by making sure the Thread calling the method has exclusive access to the Channel until the specified function has returned.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:performAtomic)",
                "start": [
                    123,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt returns nil if there are no messages in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:pop)\n\n@*return* `value` — The contents of the message.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                134,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                134,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        }
                    ],
                    "desc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt returns nil if there are no messages in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:pop)\n\n@*return* `value` — The contents of the message.",
                    "finish": [
                        134,
                        26
                    ],
                    "rawdesc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt returns nil if there are no messages in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:pop)",
                    "returns": [
                        {
                            "desc": "The contents of the message.",
                            "name": "value",
                            "rawdesc": "The contents of the message.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        134,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:pop()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    134,
                    20
                ],
                "name": "pop",
                "rawdesc": "\nRetrieves the value of a Channel message and removes it from the message queue.\n\nIt returns nil if there are no messages in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:pop)",
                "start": [
                    134,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSend a message to the thread Channel.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:push)\n\n@*param* `value` — The contents of the message.\n\n@*return* `id` — Identifier which can be supplied to Channel:hasRead",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                146,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                146,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        },
                        {
                            "desc": "The contents of the message.",
                            "finish": [
                                146,
                                27
                            ],
                            "name": "value",
                            "rawdesc": "The contents of the message.",
                            "start": [
                                146,
                                22
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nSend a message to the thread Channel.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:push)\n\n@*param* `value` — The contents of the message.\n\n@*return* `id` — Identifier which can be supplied to Channel:hasRead",
                    "finish": [
                        146,
                        32
                    ],
                    "rawdesc": "\nSend a message to the thread Channel.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:push)",
                    "returns": [
                        {
                            "desc": "Identifier which can be supplied to Channel:hasRead",
                            "name": "id",
                            "rawdesc": "Identifier which can be supplied to Channel:hasRead",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        146,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:push(value: any)\n  -> id: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    146,
                    21
                ],
                "name": "push",
                "rawdesc": "\nSend a message to the thread Channel.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:push)",
                "start": [
                    146,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSend a message to the thread Channel and wait for a thread to accept it.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:supply)\n\n\n---\n\n@*param* `value` — The contents of the message.\n\n@*return* `success` — Whether the message was successfully supplied (always true).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                159,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can be used to send and receive data between different threads.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                159,
                                8
                            ],
                            "type": "self",
                            "view": "love.Channel"
                        },
                        {
                            "desc": "The contents of the message.",
                            "finish": [
                                159,
                                29
                            ],
                            "name": "value",
                            "rawdesc": "The contents of the message.",
                            "start": [
                                159,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nSend a message to the thread Channel and wait for a thread to accept it.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:supply)\n\n\n---\n\n@*param* `value` — The contents of the message.\n\n@*return* `success` — Whether the message was successfully supplied (always true).",
                    "finish": [
                        159,
                        34
                    ],
                    "rawdesc": "\nSend a message to the thread Channel and wait for a thread to accept it.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:supply)",
                    "returns": [
                        {
                            "desc": "Whether the message was successfully supplied (always true).",
                            "name": "success",
                            "rawdesc": "Whether the message was successfully supplied (always true).",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        159,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Channel:supply(value: any)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    159,
                    23
                ],
                "name": "supply",
                "rawdesc": "\nSend a message to the thread Channel and wait for a thread to accept it.\n\nSee Variant for the list of supported types.\n\n\n[Open in Browser](https://love2d.org/wiki/Channel:supply)",
                "start": [
                    159,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Channel",
        "type": "type",
        "view": "love.Channel"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            1223,
                            38
                        ],
                        "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            1223,
                            28
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Shape"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1223,
                            51
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1223,
                            40
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1223,
                    51
                ],
                "rawdesc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1223,
                    10
                ],
                "type": "doc.class",
                "view": "love.CircleShape",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2689,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2689,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2689,
                                29
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2689,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2689,
                                33
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2689,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2689,
                                37
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2689,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child to compute the bounding box of.",
                            "finish": [
                                2689,
                                49
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child to compute the bounding box of.",
                            "start": [
                                2689,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                    "finish": [
                        2689,
                        54
                    ],
                    "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                    "returns": [
                        {
                            "desc": "The x position of the top-left point.",
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2689,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeAABB(tx: number, ty: number, tr: number, childIndex?: number)\n  -> topLeftX: number\n  2. topLeftY: number\n  3. bottomRightX: number\n  4. bottomRightY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2689,
                    26
                ],
                "name": "computeAABB",
                "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                "start": [
                    2689,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2702,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2702,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The shape density.",
                            "finish": [
                                2702,
                                34
                            ],
                            "name": "density",
                            "rawdesc": "The shape density.",
                            "start": [
                                2702,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        2702,
                        39
                    ],
                    "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                    "returns": [
                        {
                            "desc": "The x postition of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y postition of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the shape.",
                            "name": "mass",
                            "rawdesc": "The mass of the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2702,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeMass(density: number)\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2702,
                    26
                ],
                "name": "computeMass",
                "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                "start": [
                    2702,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2711,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2711,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                    "finish": [
                        2711,
                        34
                    ],
                    "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                    "returns": [
                        {
                            "desc": "The number of children.",
                            "name": "count",
                            "rawdesc": "The number of children.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2711,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getChildCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2711,
                    28
                ],
                "name": "getChildCount",
                "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                "start": [
                    2711,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the center point of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getPoint)\n\n@*return* `x` — The x-component of the center point of the circle.\n\n@*return* `y` — The y-component of the center point of the circle.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1234,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1234,
                                8
                            ],
                            "type": "self",
                            "view": "love.CircleShape"
                        }
                    ],
                    "desc": "\nGets the center point of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getPoint)\n\n@*return* `x` — The x-component of the center point of the circle.\n\n@*return* `y` — The y-component of the center point of the circle.",
                    "finish": [
                        1234,
                        35
                    ],
                    "rawdesc": "\nGets the center point of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getPoint)",
                    "returns": [
                        {
                            "desc": "The x-component of the center point of the circle.",
                            "name": "x",
                            "rawdesc": "The x-component of the center point of the circle.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the center point of the circle.",
                            "name": "y",
                            "rawdesc": "The y-component of the center point of the circle.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1234,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CircleShape:getPoint()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1234,
                    29
                ],
                "name": "getPoint",
                "rawdesc": "\nGets the center point of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getPoint)",
                "start": [
                    1234,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the radius of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getRadius)\n\n@*return* `radius` — The radius of the circle",
                "extends": {
                    "args": [
                        {
                            "desc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1243,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1243,
                                8
                            ],
                            "type": "self",
                            "view": "love.CircleShape"
                        }
                    ],
                    "desc": "\nGets the radius of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getRadius)\n\n@*return* `radius` — The radius of the circle",
                    "finish": [
                        1243,
                        36
                    ],
                    "rawdesc": "\nGets the radius of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getRadius)",
                    "returns": [
                        {
                            "desc": "The radius of the circle",
                            "name": "radius",
                            "rawdesc": "The radius of the circle",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1243,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CircleShape:getRadius()\n  -> radius: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1243,
                    30
                ],
                "name": "getRadius",
                "rawdesc": "\nGets the radius of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:getRadius)",
                "start": [
                    1243,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2731,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2731,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "finish": [
                        2731,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Shape.",
                            "name": "type",
                            "rawdesc": "The type of the Shape.",
                            "type": "function.return",
                            "view": "\"chain\"|\"circle\"|\"edge\"|\"polygon\""
                        }
                    ],
                    "start": [
                        2731,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getType()\n  -> type: \"chain\"|\"circle\"|\"edge\"|\"polygon\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2731,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "start": [
                    2731,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2759,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2759,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The x position of the input line starting point.",
                            "finish": [
                                2759,
                                25
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the input line starting point.",
                            "start": [
                                2759,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line starting point.",
                            "finish": [
                                2759,
                                29
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the input line starting point.",
                            "start": [
                                2759,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the input line end point.",
                            "finish": [
                                2759,
                                33
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the input line end point.",
                            "start": [
                                2759,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line end point.",
                            "finish": [
                                2759,
                                37
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the input line end point.",
                            "start": [
                                2759,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Ray length parameter.",
                            "finish": [
                                2759,
                                50
                            ],
                            "name": "maxFraction",
                            "rawdesc": "Ray length parameter.",
                            "start": [
                                2759,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2759,
                                54
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2759,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2759,
                                58
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2759,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2759,
                                62
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2759,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child the ray gets cast against.",
                            "finish": [
                                2759,
                                74
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child the ray gets cast against.",
                            "start": [
                                2759,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                    "finish": [
                        2759,
                        79
                    ],
                    "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "name": "xn",
                            "rawdesc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "name": "yn",
                            "rawdesc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "name": "fraction",
                            "rawdesc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2759,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:rayCast(x1: number, y1: number, x2: number, y2: number, maxFraction: number, tx: number, ty: number, tr: number, childIndex?: number)\n  -> xn: number\n  2. yn: number\n  3. fraction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2759,
                    22
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                "start": [
                    2759,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the location of the center of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setPoint)\n\n@*param* `x` — The x-component of the new center point of the circle.\n\n@*param* `y` — The y-component of the new center point of the circle.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1253,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1253,
                                8
                            ],
                            "type": "self",
                            "view": "love.CircleShape"
                        },
                        {
                            "desc": "The x-component of the new center point of the circle.",
                            "finish": [
                                1253,
                                31
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the new center point of the circle.",
                            "start": [
                                1253,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the new center point of the circle.",
                            "finish": [
                                1253,
                                34
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the new center point of the circle.",
                            "start": [
                                1253,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the location of the center of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setPoint)\n\n@*param* `x` — The x-component of the new center point of the circle.\n\n@*param* `y` — The y-component of the new center point of the circle.",
                    "finish": [
                        1253,
                        39
                    ],
                    "rawdesc": "\nSets the location of the center of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setPoint)",
                    "start": [
                        1253,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CircleShape:setPoint(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1253,
                    29
                ],
                "name": "setPoint",
                "rawdesc": "\nSets the location of the center of the circle shape.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setPoint)",
                "start": [
                    1253,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the radius of the circle.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setRadius)\n\n@*param* `radius` — The radius of the circle",
                "extends": {
                    "args": [
                        {
                            "desc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1262,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nCircle extends Shape and adds a radius and a local position.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1262,
                                8
                            ],
                            "type": "self",
                            "view": "love.CircleShape"
                        },
                        {
                            "desc": "The radius of the circle",
                            "finish": [
                                1262,
                                37
                            ],
                            "name": "radius",
                            "rawdesc": "The radius of the circle",
                            "start": [
                                1262,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the radius of the circle.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setRadius)\n\n@*param* `radius` — The radius of the circle",
                    "finish": [
                        1262,
                        42
                    ],
                    "rawdesc": "\nSets the radius of the circle.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setRadius)",
                    "start": [
                        1262,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CircleShape:setRadius(radius: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1262,
                    30
                ],
                "name": "setRadius",
                "rawdesc": "\nSets the radius of the circle.\n\n\n[Open in Browser](https://love2d.org/wiki/CircleShape:setRadius)",
                "start": [
                    1262,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2773,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2773,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "Translates the shape along the x-axis.",
                            "finish": [
                                2773,
                                27
                            ],
                            "name": "tx",
                            "rawdesc": "Translates the shape along the x-axis.",
                            "start": [
                                2773,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Translates the shape along the y-axis.",
                            "finish": [
                                2773,
                                31
                            ],
                            "name": "ty",
                            "rawdesc": "Translates the shape along the y-axis.",
                            "start": [
                                2773,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Rotates the shape.",
                            "finish": [
                                2773,
                                35
                            ],
                            "name": "tr",
                            "rawdesc": "Rotates the shape.",
                            "start": [
                                2773,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the point.",
                            "finish": [
                                2773,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the point.",
                            "start": [
                                2773,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the point.",
                            "finish": [
                                2773,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the point.",
                            "start": [
                                2773,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                    "finish": [
                        2773,
                        46
                    ],
                    "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                    "returns": [
                        {
                            "desc": "True if inside, false if outside",
                            "name": "hit",
                            "rawdesc": "True if inside, false if outside",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2773,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:testPoint(tx: number, ty: number, tr: number, x: number, y: number)\n  -> hit: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2773,
                    24
                ],
                "name": "testPoint",
                "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                "start": [
                    2773,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.CircleShape",
        "type": "type",
        "view": "love.CircleShape"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \nlove.CompareMode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "finish": [
                    3578,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \nlove.CompareMode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3540,
                    10
                ],
                "type": "doc.alias",
                "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
            }
        ],
        "fields": [],
        "name": "love.CompareMode",
        "type": "type",
        "view": "love.CompareMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents byte data compressed using a specific algorithm.\n\nlove.data.decompress can be used to de-compress the data (or love.math.decompress in 0.10.2 or earlier).\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            165,
                            40
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            165,
                            31
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            165,
                            53
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            165,
                            42
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    165,
                    53
                ],
                "rawdesc": "\nRepresents byte data compressed using a specific algorithm.\n\nlove.data.decompress can be used to de-compress the data (or love.math.decompress in 0.10.2 or earlier).\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "start": [
                    165,
                    10
                ],
                "type": "doc.class",
                "view": "love.CompressedData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the compression format of the CompressedData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedData:getFormat)\n\n@*return* `format` — The format of the CompressedData.\n\n```lua\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents byte data compressed using a specific algorithm.\n\nlove.data.decompress can be used to de-compress the data (or love.math.decompress in 0.10.2 or earlier).\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                            "finish": [
                                175,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents byte data compressed using a specific algorithm.\n\nlove.data.decompress can be used to de-compress the data (or love.math.decompress in 0.10.2 or earlier).\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                            "start": [
                                175,
                                8
                            ],
                            "type": "self",
                            "view": "love.CompressedData"
                        }
                    ],
                    "desc": "\nGets the compression format of the CompressedData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedData:getFormat)\n\n@*return* `format` — The format of the CompressedData.\n\n```lua\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                    "finish": [
                        175,
                        39
                    ],
                    "rawdesc": "\nGets the compression format of the CompressedData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedData:getFormat)\n\n\n```lua\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                    "returns": [
                        {
                            "desc": "The format of the CompressedData.",
                            "name": "format",
                            "rawdesc": "The format of the CompressedData.",
                            "type": "function.return",
                            "view": "\"deflate\"|\"gzip\"|\"lz4\"|\"zlib\""
                        }
                    ],
                    "start": [
                        175,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CompressedData:getFormat()\n  -> format: \"deflate\"|\"gzip\"|\"lz4\"|\"zlib\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    175,
                    33
                ],
                "name": "getFormat",
                "rawdesc": "\nGets the compression format of the CompressedData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedData:getFormat)\n\n\n```lua\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "start": [
                    175,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.CompressedData",
        "type": "type",
        "view": "love.CompressedData"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nlove.CompressedDataFormat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "finish": [
                    199,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nlove.CompressedDataFormat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "start": [
                    183,
                    10
                ],
                "type": "doc.alias",
                "view": "\"deflate\"|\"gzip\"|\"lz4\"|\"zlib\""
            }
        ],
        "fields": [],
        "name": "love.CompressedDataFormat",
        "type": "type",
        "view": "love.CompressedDataFormat"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            58,
                            45
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            58,
                            36
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            58,
                            58
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            58,
                            47
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    58,
                    58
                ],
                "rawdesc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "start": [
                    58,
                    10
                ],
                "type": "doc.class",
                "view": "love.CompressedImageData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getDimensions)\n\n\n---\n\n@*return* `width` — The width of the CompressedImageData.\n\n@*return* `height` — The height of the CompressedImageData.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "desc": "\nGets the width and height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getDimensions)\n\n\n---\n\n@*return* `width` — The width of the CompressedImageData.\n\n@*return* `height` — The height of the CompressedImageData.",
                    "finish": [
                        70,
                        48
                    ],
                    "rawdesc": "\nGets the width and height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the CompressedImageData.",
                            "name": "width",
                            "rawdesc": "The width of the CompressedImageData.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the CompressedImageData.",
                            "name": "height",
                            "rawdesc": "The height of the CompressedImageData.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CompressedImageData:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    70,
                    42
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getDimensions)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the format of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getFormat)\n\n@*return* `format` — The format of the CompressedImageData.\n\n```lua\n-- \n-- Compressed image data formats. Here and here are a couple overviews of many of the formats.\n-- \n-- Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedImageFormat)\n-- \nformat:\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                79,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                79,
                                8
                            ],
                            "type": "self",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "desc": "\nGets the format of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getFormat)\n\n@*return* `format` — The format of the CompressedImageData.\n\n```lua\n-- \n-- Compressed image data formats. Here and here are a couple overviews of many of the formats.\n-- \n-- Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedImageFormat)\n-- \nformat:\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "finish": [
                        79,
                        44
                    ],
                    "rawdesc": "\nGets the format of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getFormat)\n\n\n```lua\n-- \n-- Compressed image data formats. Here and here are a couple overviews of many of the formats.\n-- \n-- Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedImageFormat)\n-- \nformat:\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "returns": [
                        {
                            "desc": "The format of the CompressedImageData.",
                            "name": "format",
                            "rawdesc": "The format of the CompressedImageData.",
                            "type": "function.return",
                            "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+31)"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CompressedImageData:getFormat()\n  -> format: \"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+31)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    79,
                    38
                ],
                "name": "getFormat",
                "rawdesc": "\nGets the format of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getFormat)\n\n\n```lua\n-- \n-- Compressed image data formats. Here and here are a couple overviews of many of the formats.\n-- \n-- Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedImageFormat)\n-- \nformat:\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    79,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getHeight)\n\n\n---\n\n@*return* `height` — The height of the CompressedImageData.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                89,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                89,
                                8
                            ],
                            "type": "self",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "desc": "\nGets the height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getHeight)\n\n\n---\n\n@*return* `height` — The height of the CompressedImageData.",
                    "finish": [
                        89,
                        44
                    ],
                    "rawdesc": "\nGets the height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the CompressedImageData.",
                            "name": "height",
                            "rawdesc": "The height of the CompressedImageData.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        89,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CompressedImageData:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    89,
                    38
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getHeight)",
                "start": [
                    89,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of mipmap levels in the CompressedImageData. The base mipmap level (original image) is included in the count.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmap levels stored in the CompressedImageData.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                98,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                98,
                                8
                            ],
                            "type": "self",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "desc": "\nGets the number of mipmap levels in the CompressedImageData. The base mipmap level (original image) is included in the count.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmap levels stored in the CompressedImageData.",
                    "finish": [
                        98,
                        49
                    ],
                    "rawdesc": "\nGets the number of mipmap levels in the CompressedImageData. The base mipmap level (original image) is included in the count.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getMipmapCount)",
                    "returns": [
                        {
                            "desc": "The number of mipmap levels stored in the CompressedImageData.",
                            "name": "mipmaps",
                            "rawdesc": "The number of mipmap levels stored in the CompressedImageData.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        98,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CompressedImageData:getMipmapCount()\n  -> mipmaps: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    98,
                    43
                ],
                "name": "getMipmapCount",
                "rawdesc": "\nGets the number of mipmap levels in the CompressedImageData. The base mipmap level (original image) is included in the count.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getMipmapCount)",
                "start": [
                    98,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getWidth)\n\n\n---\n\n@*return* `width` — The width of the CompressedImageData.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents compressed image data designed to stay compressed in RAM.\n\nCompressedImageData encompasses standard compressed texture formats such as  DXT1, DXT5, and BC5 / 3Dc.\n\nYou can't draw CompressedImageData directly to the screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "desc": "\nGets the width of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getWidth)\n\n\n---\n\n@*return* `width` — The width of the CompressedImageData.",
                    "finish": [
                        108,
                        43
                    ],
                    "rawdesc": "\nGets the width of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the CompressedImageData.",
                            "name": "width",
                            "rawdesc": "The width of the CompressedImageData.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.CompressedImageData:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    108,
                    37
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/CompressedImageData:getWidth)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.CompressedImageData",
        "type": "type",
        "view": "love.CompressedImageData"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Compressed image data formats. Here and here are a couple overviews of many of the formats.\n-- \n-- Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedImageFormat)\n-- \nlove.CompressedImageFormat:\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "finish": [
                    406,
                    16
                ],
                "rawdesc": "```lua\n-- \n-- Compressed image data formats. Here and here are a couple overviews of many of the formats.\n-- \n-- Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedImageFormat)\n-- \nlove.CompressedImageFormat:\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    262,
                    10
                ],
                "type": "doc.alias",
                "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+31)"
            }
        ],
        "fields": [],
        "name": "love.CompressedImageFormat",
        "type": "type",
        "view": "love.CompressedImageFormat"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1270,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1270,
                            24
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1270,
                    35
                ],
                "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1270,
                    10
                ],
                "type": "doc.class",
                "view": "love.Contact",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the child indices of the shapes of the two colliding fixtures. For ChainShapes, an index of 1 is the first edge in the chain.\nUsed together with Fixture:rayCast or ChainShape:getChildEdge.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getChildren)\n\n@*return* `indexA` — The child index of the first fixture's shape.\n\n@*return* `indexB` — The child index of the second fixture's shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1282,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1282,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nGets the child indices of the shapes of the two colliding fixtures. For ChainShapes, an index of 1 is the first edge in the chain.\nUsed together with Fixture:rayCast or ChainShape:getChildEdge.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getChildren)\n\n@*return* `indexA` — The child index of the first fixture's shape.\n\n@*return* `indexB` — The child index of the second fixture's shape.",
                    "finish": [
                        1282,
                        34
                    ],
                    "rawdesc": "\nGets the child indices of the shapes of the two colliding fixtures. For ChainShapes, an index of 1 is the first edge in the chain.\nUsed together with Fixture:rayCast or ChainShape:getChildEdge.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getChildren)",
                    "returns": [
                        {
                            "desc": "The child index of the first fixture's shape.",
                            "name": "indexA",
                            "rawdesc": "The child index of the first fixture's shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The child index of the second fixture's shape.",
                            "name": "indexB",
                            "rawdesc": "The child index of the second fixture's shape.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1282,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:getChildren()\n  -> indexA: number\n  2. indexB: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1282,
                    28
                ],
                "name": "getChildren",
                "rawdesc": "\nGets the child indices of the shapes of the two colliding fixtures. For ChainShapes, an index of 1 is the first edge in the chain.\nUsed together with Fixture:rayCast or ChainShape:getChildEdge.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getChildren)",
                "start": [
                    1282,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the two Fixtures that hold the shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFixtures)\n\n@*return* `fixtureA` — The first Fixture.\n\n@*return* `fixtureB` — The second Fixture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1292,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1292,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nGets the two Fixtures that hold the shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFixtures)\n\n@*return* `fixtureA` — The first Fixture.\n\n@*return* `fixtureB` — The second Fixture.",
                    "finish": [
                        1292,
                        34
                    ],
                    "rawdesc": "\nGets the two Fixtures that hold the shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFixtures)",
                    "returns": [
                        {
                            "desc": "The first Fixture.",
                            "name": "fixtureA",
                            "rawdesc": "The first Fixture.",
                            "type": "function.return",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The second Fixture.",
                            "name": "fixtureB",
                            "rawdesc": "The second Fixture.",
                            "type": "function.return",
                            "view": "love.Fixture"
                        }
                    ],
                    "start": [
                        1292,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:getFixtures()\n  -> fixtureA: love.Fixture\n  2. fixtureB: love.Fixture"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1292,
                    28
                ],
                "name": "getFixtures",
                "rawdesc": "\nGets the two Fixtures that hold the shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFixtures)",
                "start": [
                    1292,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the friction between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFriction)\n\n@*return* `friction` — The friction of the contact.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1301,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1301,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nGet the friction between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFriction)\n\n@*return* `friction` — The friction of the contact.",
                    "finish": [
                        1301,
                        34
                    ],
                    "rawdesc": "\nGet the friction between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFriction)",
                    "returns": [
                        {
                            "desc": "The friction of the contact.",
                            "name": "friction",
                            "rawdesc": "The friction of the contact.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1301,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:getFriction()\n  -> friction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1301,
                    28
                ],
                "name": "getFriction",
                "rawdesc": "\nGet the friction between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getFriction)",
                "start": [
                    1301,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the normal vector between two shapes that are in contact.\n\nThis function returns the coordinates of a unit vector that points from the first shape to the second.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getNormal)\n\n@*return* `nx` — The x component of the normal vector.\n\n@*return* `ny` — The y component of the normal vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1313,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1313,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nGet the normal vector between two shapes that are in contact.\n\nThis function returns the coordinates of a unit vector that points from the first shape to the second.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getNormal)\n\n@*return* `nx` — The x component of the normal vector.\n\n@*return* `ny` — The y component of the normal vector.",
                    "finish": [
                        1313,
                        32
                    ],
                    "rawdesc": "\nGet the normal vector between two shapes that are in contact.\n\nThis function returns the coordinates of a unit vector that points from the first shape to the second.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getNormal)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector.",
                            "name": "nx",
                            "rawdesc": "The x component of the normal vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector.",
                            "name": "ny",
                            "rawdesc": "The y component of the normal vector.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1313,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:getNormal()\n  -> nx: number\n  2. ny: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1313,
                    26
                ],
                "name": "getNormal",
                "rawdesc": "\nGet the normal vector between two shapes that are in contact.\n\nThis function returns the coordinates of a unit vector that points from the first shape to the second.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getNormal)",
                "start": [
                    1313,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the contact points of the two colliding fixtures. There can be one or two points.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getPositions)\n\n@*return* `x1` — The x coordinate of the first contact point.\n\n@*return* `y1` — The y coordinate of the first contact point.\n\n@*return* `x2` — The x coordinate of the second contact point.\n\n@*return* `y2` — The y coordinate of the second contact point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1325,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1325,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nReturns the contact points of the two colliding fixtures. There can be one or two points.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getPositions)\n\n@*return* `x1` — The x coordinate of the first contact point.\n\n@*return* `y1` — The y coordinate of the first contact point.\n\n@*return* `x2` — The x coordinate of the second contact point.\n\n@*return* `y2` — The y coordinate of the second contact point.",
                    "finish": [
                        1325,
                        35
                    ],
                    "rawdesc": "\nReturns the contact points of the two colliding fixtures. There can be one or two points.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getPositions)",
                    "returns": [
                        {
                            "desc": "The x coordinate of the first contact point.",
                            "name": "x1",
                            "rawdesc": "The x coordinate of the first contact point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the first contact point.",
                            "name": "y1",
                            "rawdesc": "The y coordinate of the first contact point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the second contact point.",
                            "name": "x2",
                            "rawdesc": "The x coordinate of the second contact point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the second contact point.",
                            "name": "y2",
                            "rawdesc": "The y coordinate of the second contact point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1325,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:getPositions()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1325,
                    29
                ],
                "name": "getPositions",
                "rawdesc": "\nReturns the contact points of the two colliding fixtures. There can be one or two points.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getPositions)",
                "start": [
                    1325,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the restitution between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getRestitution)\n\n@*return* `restitution` — The restitution between the two shapes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1334,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1334,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nGet the restitution between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getRestitution)\n\n@*return* `restitution` — The restitution between the two shapes.",
                    "finish": [
                        1334,
                        37
                    ],
                    "rawdesc": "\nGet the restitution between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getRestitution)",
                    "returns": [
                        {
                            "desc": "The restitution between the two shapes.",
                            "name": "restitution",
                            "rawdesc": "The restitution between the two shapes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1334,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:getRestitution()\n  -> restitution: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1334,
                    31
                ],
                "name": "getRestitution",
                "rawdesc": "\nGet the restitution between two shapes that are in contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:getRestitution)",
                "start": [
                    1334,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the contact is enabled. The collision will be ignored if a contact gets disabled in the preSolve callback.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1343,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1343,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nReturns whether the contact is enabled. The collision will be ignored if a contact gets disabled in the preSolve callback.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                    "finish": [
                        1343,
                        32
                    ],
                    "rawdesc": "\nReturns whether the contact is enabled. The collision will be ignored if a contact gets disabled in the preSolve callback.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false otherwise.",
                            "name": "enabled",
                            "rawdesc": "True if enabled, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1343,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:isEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1343,
                    26
                ],
                "name": "isEnabled",
                "rawdesc": "\nReturns whether the contact is enabled. The collision will be ignored if a contact gets disabled in the preSolve callback.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isEnabled)",
                "start": [
                    1343,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the two colliding fixtures are touching each other.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isTouching)\n\n@*return* `touching` — True if they touch or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1352,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1352,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nReturns whether the two colliding fixtures are touching each other.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isTouching)\n\n@*return* `touching` — True if they touch or false if not.",
                    "finish": [
                        1352,
                        33
                    ],
                    "rawdesc": "\nReturns whether the two colliding fixtures are touching each other.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isTouching)",
                    "returns": [
                        {
                            "desc": "True if they touch or false if not.",
                            "name": "touching",
                            "rawdesc": "True if they touch or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1352,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:isTouching()\n  -> touching: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1352,
                    27
                ],
                "name": "isTouching",
                "rawdesc": "\nReturns whether the two colliding fixtures are touching each other.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:isTouching)",
                "start": [
                    1352,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the contact friction to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetFriction)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1360,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1360,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nResets the contact friction to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetFriction)",
                    "finish": [
                        1360,
                        36
                    ],
                    "rawdesc": "\nResets the contact friction to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetFriction)",
                    "start": [
                        1360,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:resetFriction()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1360,
                    30
                ],
                "name": "resetFriction",
                "rawdesc": "\nResets the contact friction to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetFriction)",
                "start": [
                    1360,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the contact restitution to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetRestitution)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1368,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1368,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        }
                    ],
                    "desc": "\nResets the contact restitution to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetRestitution)",
                    "finish": [
                        1368,
                        39
                    ],
                    "rawdesc": "\nResets the contact restitution to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetRestitution)",
                    "start": [
                        1368,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:resetRestitution()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1368,
                    33
                ],
                "name": "resetRestitution",
                "rawdesc": "\nResets the contact restitution to the mixture value of both fixtures.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:resetRestitution)",
                "start": [
                    1368,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables or disables the contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setEnabled)\n\n@*param* `enabled` — True to enable or false to disable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1377,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1377,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        },
                        {
                            "desc": "True to enable or false to disable.",
                            "finish": [
                                1377,
                                35
                            ],
                            "name": "enabled",
                            "rawdesc": "True to enable or false to disable.",
                            "start": [
                                1377,
                                28
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables or disables the contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setEnabled)\n\n@*param* `enabled` — True to enable or false to disable.",
                    "finish": [
                        1377,
                        40
                    ],
                    "rawdesc": "\nEnables or disables the contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setEnabled)",
                    "start": [
                        1377,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:setEnabled(enabled: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1377,
                    27
                ],
                "name": "setEnabled",
                "rawdesc": "\nEnables or disables the contact.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setEnabled)",
                "start": [
                    1377,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the contact friction.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setFriction)\n\n@*param* `friction` — The contact friction.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1386,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1386,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        },
                        {
                            "desc": "The contact friction.",
                            "finish": [
                                1386,
                                37
                            ],
                            "name": "friction",
                            "rawdesc": "The contact friction.",
                            "start": [
                                1386,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the contact friction.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setFriction)\n\n@*param* `friction` — The contact friction.",
                    "finish": [
                        1386,
                        42
                    ],
                    "rawdesc": "\nSets the contact friction.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setFriction)",
                    "start": [
                        1386,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:setFriction(friction: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1386,
                    28
                ],
                "name": "setFriction",
                "rawdesc": "\nSets the contact friction.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setFriction)",
                "start": [
                    1386,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the contact restitution.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setRestitution)\n\n@*param* `restitution` — The contact restitution.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1395,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContacts are objects created to manage collisions in worlds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1395,
                                8
                            ],
                            "type": "self",
                            "view": "love.Contact"
                        },
                        {
                            "desc": "The contact restitution.",
                            "finish": [
                                1395,
                                43
                            ],
                            "name": "restitution",
                            "rawdesc": "The contact restitution.",
                            "start": [
                                1395,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the contact restitution.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setRestitution)\n\n@*param* `restitution` — The contact restitution.",
                    "finish": [
                        1395,
                        48
                    ],
                    "rawdesc": "\nSets the contact restitution.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setRestitution)",
                    "start": [
                        1395,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Contact:setRestitution(restitution: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1395,
                    31
                ],
                "name": "setRestitution",
                "rawdesc": "\nSets the contact restitution.\n\n\n[Open in Browser](https://love2d.org/wiki/Contact:setRestitution)",
                "start": [
                    1395,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Contact",
        "type": "type",
        "view": "love.Contact"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \nlove.ContainerType:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "finish": [
                    215,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \nlove.ContainerType:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "start": [
                    207,
                    10
                ],
                "type": "doc.alias",
                "view": "\"data\"|\"string\""
            }
        ],
        "fields": [],
        "name": "love.ContainerType",
        "type": "type",
        "view": "love.ContainerType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nlove.CullMode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "finish": [
                    3598,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nlove.CullMode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "start": [
                    3586,
                    10
                ],
                "type": "doc.alias",
                "view": "\"back\"|\"front\"|\"none\""
            }
        ],
        "fields": [],
        "name": "love.CullMode",
        "type": "type",
        "view": "love.CullMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents a hardware cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            212,
                            34
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            212,
                            23
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    212,
                    34
                ],
                "rawdesc": "\nRepresents a hardware cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "start": [
                    212,
                    10
                ],
                "type": "doc.class",
                "view": "love.Cursor",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/Cursor:getType)\n\n@*return* `ctype` — The type of the Cursor.\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a hardware cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                            "finish": [
                                222,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a hardware cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                            "start": [
                                222,
                                8
                            ],
                            "type": "self",
                            "view": "love.Cursor"
                        }
                    ],
                    "desc": "\nGets the type of the Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/Cursor:getType)\n\n@*return* `ctype` — The type of the Cursor.\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                    "finish": [
                        222,
                        29
                    ],
                    "rawdesc": "\nGets the type of the Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/Cursor:getType)\n\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Cursor.",
                            "name": "ctype",
                            "rawdesc": "The type of the Cursor.",
                            "type": "function.return",
                            "view": "\"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8)"
                        }
                    ],
                    "start": [
                        222,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Cursor:getType()\n  -> ctype: \"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    222,
                    23
                ],
                "name": "getType",
                "rawdesc": "\nGets the type of the Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/Cursor:getType)\n\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "start": [
                    222,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Cursor",
        "type": "type",
        "view": "love.Cursor"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nlove.CursorType:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "finish": [
                    282,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nlove.CursorType:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "start": [
                    230,
                    10
                ],
                "type": "doc.alias",
                "view": "\"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8)"
            }
        ],
        "fields": [],
        "name": "love.CursorType",
        "type": "type",
        "view": "love.CursorType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            60,
                            32
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            60,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    60,
                    32
                ],
                "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "start": [
                    60,
                    10
                ],
                "type": "doc.class",
                "view": "love.Data",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Data",
        "type": "type",
        "view": "love.Data"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            44,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            44,
                            24
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    44,
                    35
                ],
                "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "start": [
                    44,
                    10
                ],
                "type": "doc.class",
                "view": "love.Decoder",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of current decoder.\n\nThe new decoder will start decoding from the beginning of the audio stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:clone)\n\n@*return* `decoder` — New copy of the decoder.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                56,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                56,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        }
                    ],
                    "desc": "\nCreates a new copy of current decoder.\n\nThe new decoder will start decoding from the beginning of the audio stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:clone)\n\n@*return* `decoder` — New copy of the decoder.",
                    "finish": [
                        56,
                        28
                    ],
                    "rawdesc": "\nCreates a new copy of current decoder.\n\nThe new decoder will start decoding from the beginning of the audio stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:clone)",
                    "returns": [
                        {
                            "desc": "New copy of the decoder.",
                            "name": "decoder",
                            "rawdesc": "New copy of the decoder.",
                            "type": "function.return",
                            "view": "love.Decoder"
                        }
                    ],
                    "start": [
                        56,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:clone()\n  -> decoder: love.Decoder"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    56,
                    22
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of current decoder.\n\nThe new decoder will start decoding from the beginning of the audio stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:clone)",
                "start": [
                    56,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecodes the audio and returns a SoundData object containing the decoded audio data.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:decode)\n\n@*return* `soundData` — Decoded audio data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                65,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                65,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        }
                    ],
                    "desc": "\nDecodes the audio and returns a SoundData object containing the decoded audio data.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:decode)\n\n@*return* `soundData` — Decoded audio data.",
                    "finish": [
                        65,
                        29
                    ],
                    "rawdesc": "\nDecodes the audio and returns a SoundData object containing the decoded audio data.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:decode)",
                    "returns": [
                        {
                            "desc": "Decoded audio data.",
                            "name": "soundData",
                            "rawdesc": "Decoded audio data.",
                            "type": "function.return",
                            "view": "love.SoundData"
                        }
                    ],
                    "start": [
                        65,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:decode()\n  -> soundData: love.SoundData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    65,
                    23
                ],
                "name": "decode",
                "rawdesc": "\nDecodes the audio and returns a SoundData object containing the decoded audio data.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:decode)",
                "start": [
                    65,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getBitDepth)\n\n@*return* `bitDepth` — Either 8, or 16.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                74,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                74,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        }
                    ],
                    "desc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getBitDepth)\n\n@*return* `bitDepth` — Either 8, or 16.",
                    "finish": [
                        74,
                        34
                    ],
                    "rawdesc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getBitDepth)",
                    "returns": [
                        {
                            "desc": "Either 8, or 16.",
                            "name": "bitDepth",
                            "rawdesc": "Either 8, or 16.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        74,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:getBitDepth()\n  -> bitDepth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    74,
                    28
                ],
                "name": "getBitDepth",
                "rawdesc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getBitDepth)",
                "start": [
                    74,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of channels in the stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getChannelCount)\n\n@*return* `channels` — 1 for mono, 2 for stereo.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                83,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                83,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        }
                    ],
                    "desc": "\nReturns the number of channels in the stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getChannelCount)\n\n@*return* `channels` — 1 for mono, 2 for stereo.",
                    "finish": [
                        83,
                        38
                    ],
                    "rawdesc": "\nReturns the number of channels in the stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getChannelCount)",
                    "returns": [
                        {
                            "desc": "1 for mono, 2 for stereo.",
                            "name": "channels",
                            "rawdesc": "1 for mono, 2 for stereo.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:getChannelCount()\n  -> channels: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    83,
                    32
                ],
                "name": "getChannelCount",
                "rawdesc": "\nReturns the number of channels in the stream.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getChannelCount)",
                "start": [
                    83,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the duration of the sound file. It may not always be sample-accurate, and it may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getDuration)\n\n@*return* `duration` — The duration of the sound file in seconds, or -1 if it cannot be determined.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                92,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                92,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        }
                    ],
                    "desc": "\nGets the duration of the sound file. It may not always be sample-accurate, and it may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getDuration)\n\n@*return* `duration` — The duration of the sound file in seconds, or -1 if it cannot be determined.",
                    "finish": [
                        92,
                        34
                    ],
                    "rawdesc": "\nGets the duration of the sound file. It may not always be sample-accurate, and it may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getDuration)",
                    "returns": [
                        {
                            "desc": "The duration of the sound file in seconds, or -1 if it cannot be determined.",
                            "name": "duration",
                            "rawdesc": "The duration of the sound file in seconds, or -1 if it cannot be determined.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        92,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:getDuration()\n  -> duration: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    92,
                    28
                ],
                "name": "getDuration",
                "rawdesc": "\nGets the duration of the sound file. It may not always be sample-accurate, and it may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getDuration)",
                "start": [
                    92,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the sample rate of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getSampleRate)\n\n@*return* `rate` — Number of samples per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                101,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                101,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        }
                    ],
                    "desc": "\nReturns the sample rate of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getSampleRate)\n\n@*return* `rate` — Number of samples per second.",
                    "finish": [
                        101,
                        36
                    ],
                    "rawdesc": "\nReturns the sample rate of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getSampleRate)",
                    "returns": [
                        {
                            "desc": "Number of samples per second.",
                            "name": "rate",
                            "rawdesc": "Number of samples per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        101,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:getSampleRate()\n  -> rate: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    101,
                    30
                ],
                "name": "getSampleRate",
                "rawdesc": "\nReturns the sample rate of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:getSampleRate)",
                "start": [
                    101,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the currently playing position of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:seek)\n\n@*param* `offset` — The position to seek to, in seconds.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                110,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which can gradually decode a sound file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                110,
                                8
                            ],
                            "type": "self",
                            "view": "love.Decoder"
                        },
                        {
                            "desc": "The position to seek to, in seconds.",
                            "finish": [
                                110,
                                28
                            ],
                            "name": "offset",
                            "rawdesc": "The position to seek to, in seconds.",
                            "start": [
                                110,
                                22
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the currently playing position of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:seek)\n\n@*param* `offset` — The position to seek to, in seconds.",
                    "finish": [
                        110,
                        33
                    ],
                    "rawdesc": "\nSets the currently playing position of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:seek)",
                    "start": [
                        110,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Decoder:seek(offset: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    110,
                    21
                ],
                "name": "seek",
                "rawdesc": "\nSets the currently playing position of the Decoder.\n\n\n[Open in Browser](https://love2d.org/wiki/Decoder:seek)",
                "start": [
                    110,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Decoder",
        "type": "type",
        "view": "love.Decoder"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \nlove.DisplayOrientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                "finish": [
                    432,
                    22
                ],
                "rawdesc": "```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \nlove.DisplayOrientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                "start": [
                    412,
                    10
                ],
                "type": "doc.alias",
                "view": "\"landscape\"|\"landscapeflipped\"|\"portrait\"|\"portraitflipped\"|\"unknown\""
            }
        ],
        "fields": [],
        "name": "love.DisplayOrientation",
        "type": "type",
        "view": "love.DisplayOrientation"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            1403,
                            40
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            1403,
                            30
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1403,
                            53
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1403,
                            42
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1403,
                    53
                ],
                "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1403,
                    10
                ],
                "type": "doc.class",
                "view": "love.DistanceJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getDampingRatio)\n\n@*return* `ratio` — The damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1413,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1413,
                                8
                            ],
                            "type": "self",
                            "view": "love.DistanceJoint"
                        }
                    ],
                    "desc": "\nGets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getDampingRatio)\n\n@*return* `ratio` — The damping ratio.",
                    "finish": [
                        1413,
                        44
                    ],
                    "rawdesc": "\nGets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getDampingRatio)",
                    "returns": [
                        {
                            "desc": "The damping ratio.",
                            "name": "ratio",
                            "rawdesc": "The damping ratio.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1413,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.DistanceJoint:getDampingRatio()\n  -> ratio: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1413,
                    38
                ],
                "name": "getDampingRatio",
                "rawdesc": "\nGets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getDampingRatio)",
                "start": [
                    1413,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getFrequency)\n\n@*return* `Hz` — The response speed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1422,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1422,
                                8
                            ],
                            "type": "self",
                            "view": "love.DistanceJoint"
                        }
                    ],
                    "desc": "\nGets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getFrequency)\n\n@*return* `Hz` — The response speed.",
                    "finish": [
                        1422,
                        41
                    ],
                    "rawdesc": "\nGets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getFrequency)",
                    "returns": [
                        {
                            "desc": "The response speed.",
                            "name": "Hz",
                            "rawdesc": "The response speed.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1422,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.DistanceJoint:getFrequency()\n  -> Hz: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1422,
                    35
                ],
                "name": "getFrequency",
                "rawdesc": "\nGets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getFrequency)",
                "start": [
                    1422,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getLength)\n\n@*return* `l` — The length between the two Bodies.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1431,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1431,
                                8
                            ],
                            "type": "self",
                            "view": "love.DistanceJoint"
                        }
                    ],
                    "desc": "\nGets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getLength)\n\n@*return* `l` — The length between the two Bodies.",
                    "finish": [
                        1431,
                        38
                    ],
                    "rawdesc": "\nGets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getLength)",
                    "returns": [
                        {
                            "desc": "The length between the two Bodies.",
                            "name": "l",
                            "rawdesc": "The length between the two Bodies.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1431,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.DistanceJoint:getLength()\n  -> l: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1431,
                    32
                ],
                "name": "getLength",
                "rawdesc": "\nGets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:getLength)",
                "start": [
                    1431,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setDampingRatio)\n\n@*param* `ratio` — The damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1440,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1440,
                                8
                            ],
                            "type": "self",
                            "view": "love.DistanceJoint"
                        },
                        {
                            "desc": "The damping ratio.",
                            "finish": [
                                1440,
                                44
                            ],
                            "name": "ratio",
                            "rawdesc": "The damping ratio.",
                            "start": [
                                1440,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setDampingRatio)\n\n@*param* `ratio` — The damping ratio.",
                    "finish": [
                        1440,
                        49
                    ],
                    "rawdesc": "\nSets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setDampingRatio)",
                    "start": [
                        1440,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.DistanceJoint:setDampingRatio(ratio: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1440,
                    38
                ],
                "name": "setDampingRatio",
                "rawdesc": "\nSets the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setDampingRatio)",
                "start": [
                    1440,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setFrequency)\n\n@*param* `Hz` — The response speed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1449,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1449,
                                8
                            ],
                            "type": "self",
                            "view": "love.DistanceJoint"
                        },
                        {
                            "desc": "The response speed.",
                            "finish": [
                                1449,
                                38
                            ],
                            "name": "Hz",
                            "rawdesc": "The response speed.",
                            "start": [
                                1449,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setFrequency)\n\n@*param* `Hz` — The response speed.",
                    "finish": [
                        1449,
                        43
                    ],
                    "rawdesc": "\nSets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setFrequency)",
                    "start": [
                        1449,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.DistanceJoint:setFrequency(Hz: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1449,
                    35
                ],
                "name": "setFrequency",
                "rawdesc": "\nSets the response speed.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setFrequency)",
                "start": [
                    1449,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setLength)\n\n@*param* `l` — The length between the two Bodies.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1458,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps two bodies at the same distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1458,
                                8
                            ],
                            "type": "self",
                            "view": "love.DistanceJoint"
                        },
                        {
                            "desc": "The length between the two Bodies.",
                            "finish": [
                                1458,
                                34
                            ],
                            "name": "l",
                            "rawdesc": "The length between the two Bodies.",
                            "start": [
                                1458,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setLength)\n\n@*param* `l` — The length between the two Bodies.",
                    "finish": [
                        1458,
                        39
                    ],
                    "rawdesc": "\nSets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setLength)",
                    "start": [
                        1458,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.DistanceJoint:setLength(l: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1458,
                    32
                ],
                "name": "setLength",
                "rawdesc": "\nSets the equilibrium distance between the two Bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/DistanceJoint:setLength)",
                "start": [
                    1458,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.DistanceJoint",
        "type": "type",
        "view": "love.DistanceJoint"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nlove.DistanceModel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "finish": [
                    857,
                    22
                ],
                "rawdesc": "```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nlove.DistanceModel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "start": [
                    829,
                    10
                ],
                "type": "doc.alias",
                "view": "\"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
            }
        ],
        "fields": [],
        "name": "love.DistanceModel",
        "type": "type",
        "view": "love.DistanceModel"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nlove.DrawMode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "finish": [
                    3614,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nlove.DrawMode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    3606,
                    10
                ],
                "type": "doc.alias",
                "view": "\"fill\"|\"line\""
            }
        ],
        "fields": [],
        "name": "love.DrawMode",
        "type": "type",
        "view": "love.DrawMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1453,
                            36
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1453,
                            25
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1453,
                    36
                ],
                "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    1453,
                    10
                ],
                "type": "doc.class",
                "view": "love.Drawable",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Drawable",
        "type": "type",
        "view": "love.Drawable"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents a file dropped onto the window.\n\nNote that the DroppedFile type can only be obtained from love.filedropped callback, and can't be constructed manually by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "extends": [
                    {
                        "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                        "finish": [
                            379,
                            37
                        ],
                        "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                        "start": [
                            379,
                            28
                        ],
                        "type": "doc.extends.name",
                        "view": "love.File"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            379,
                            50
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            379,
                            39
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    379,
                    50
                ],
                "rawdesc": "\nRepresents a file dropped onto the window.\n\nNote that the DroppedFile type can only be obtained from love.filedropped callback, and can't be constructed manually by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "start": [
                    379,
                    10
                ],
                "type": "doc.class",
                "view": "love.DroppedFile",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)\n\n@*return* `success` — Whether closing was successful.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                398,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                398,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)\n\n@*return* `success` — Whether closing was successful.",
                    "finish": [
                        398,
                        25
                    ],
                    "rawdesc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)",
                    "returns": [
                        {
                            "desc": "Whether closing was successful.",
                            "name": "success",
                            "rawdesc": "Whether closing was successful.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        398,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:close()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    398,
                    19
                ],
                "name": "close",
                "rawdesc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)",
                "start": [
                    398,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)\n\n@*return* `success` — Whether the file successfully flushed any buffered data to the disk.\n\n@*return* `err` — The error string, if an error occurred and the file could not be flushed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                408,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                408,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)\n\n@*return* `success` — Whether the file successfully flushed any buffered data to the disk.\n\n@*return* `err` — The error string, if an error occurred and the file could not be flushed.",
                    "finish": [
                        408,
                        25
                    ],
                    "rawdesc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)",
                    "returns": [
                        {
                            "desc": "Whether the file successfully flushed any buffered data to the disk.",
                            "name": "success",
                            "rawdesc": "Whether the file successfully flushed any buffered data to the disk.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string, if an error occurred and the file could not be flushed.",
                            "name": "err",
                            "rawdesc": "The error string, if an error occurred and the file could not be flushed.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        408,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:flush()\n  -> success: boolean\n  2. err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    408,
                    19
                ],
                "name": "flush",
                "rawdesc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)",
                "start": [
                    408,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n@*return* `mode` — The current buffer mode of the file.\n\n@*return* `size` — The maximum size in bytes of the file's buffer.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                418,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                418,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n@*return* `mode` — The current buffer mode of the file.\n\n@*return* `size` — The maximum size in bytes of the file's buffer.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "finish": [
                        418,
                        29
                    ],
                    "rawdesc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "returns": [
                        {
                            "desc": "The current buffer mode of the file.",
                            "name": "mode",
                            "rawdesc": "The current buffer mode of the file.",
                            "type": "function.return",
                            "view": "\"full\"|\"line\"|\"none\""
                        },
                        {
                            "desc": "The maximum size in bytes of the file's buffer.",
                            "name": "size",
                            "rawdesc": "The maximum size in bytes of the file's buffer.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        418,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getBuffer()\n  -> mode: \"full\"|\"line\"|\"none\"\n  2. size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    418,
                    23
                ],
                "name": "getBuffer",
                "rawdesc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "start": [
                    418,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)\n\n@*return* `filename` — The filename of the File.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                427,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                427,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)\n\n@*return* `filename` — The filename of the File.",
                    "finish": [
                        427,
                        31
                    ],
                    "rawdesc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)",
                    "returns": [
                        {
                            "desc": "The filename of the File.",
                            "name": "filename",
                            "rawdesc": "The filename of the File.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        427,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getFilename()\n  -> filename: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    427,
                    25
                ],
                "name": "getFilename",
                "rawdesc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)",
                "start": [
                    427,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n@*return* `mode` — The mode this file has been opened with.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                436,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                436,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n@*return* `mode` — The mode this file has been opened with.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "finish": [
                        436,
                        27
                    ],
                    "rawdesc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "returns": [
                        {
                            "desc": "The mode this file has been opened with.",
                            "name": "mode",
                            "rawdesc": "The mode this file has been opened with.",
                            "type": "function.return",
                            "view": "\"a\"|\"c\"|\"r\"|\"w\""
                        }
                    ],
                    "start": [
                        436,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getMode()\n  -> mode: \"a\"|\"c\"|\"r\"|\"w\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    436,
                    21
                ],
                "name": "getMode",
                "rawdesc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "start": [
                    436,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)\n\n@*return* `size` — The file size in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                445,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                445,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)\n\n@*return* `size` — The file size in bytes.",
                    "finish": [
                        445,
                        27
                    ],
                    "rawdesc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)",
                    "returns": [
                        {
                            "desc": "The file size in bytes.",
                            "name": "size",
                            "rawdesc": "The file size in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        445,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    445,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)",
                "start": [
                    445,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)\n\n@*return* `eof` — Whether EOF has been reached.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                454,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                454,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)\n\n@*return* `eof` — Whether EOF has been reached.",
                    "finish": [
                        454,
                        25
                    ],
                    "rawdesc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)",
                    "returns": [
                        {
                            "desc": "Whether EOF has been reached.",
                            "name": "eof",
                            "rawdesc": "Whether EOF has been reached.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        454,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:isEOF()\n  -> eof: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    454,
                    19
                ],
                "name": "isEOF",
                "rawdesc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)",
                "start": [
                    454,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)\n\n@*return* `open` — True if the file is currently open, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                463,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                463,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)\n\n@*return* `open` — True if the file is currently open, false otherwise.",
                    "finish": [
                        463,
                        26
                    ],
                    "rawdesc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)",
                    "returns": [
                        {
                            "desc": "True if the file is currently open, false otherwise.",
                            "name": "open",
                            "rawdesc": "True if the file is currently open, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        463,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:isOpen()\n  -> open: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    463,
                    20
                ],
                "name": "isOpen",
                "rawdesc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)",
                "start": [
                    463,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)\n\n@*return* `iterator` — The iterator (can be used in for loops).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                472,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                472,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)\n\n@*return* `iterator` — The iterator (can be used in for loops).",
                    "finish": [
                        472,
                        25
                    ],
                    "rawdesc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)",
                    "returns": [
                        {
                            "desc": "The iterator (can be used in for loops).",
                            "name": "iterator",
                            "rawdesc": "The iterator (can be used in for loops).",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        472,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:lines()\n  -> iterator: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    472,
                    19
                ],
                "name": "lines",
                "rawdesc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)",
                "start": [
                    472,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n@*param* `mode` — The mode to open the file in.\n\n@*return* `ok` — True on success, false otherwise.\n\n@*return* `err` — The error string if an error occurred.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                483,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                483,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The mode to open the file in.",
                            "finish": [
                                483,
                                23
                            ],
                            "name": "mode",
                            "rawdesc": "The mode to open the file in.",
                            "start": [
                                483,
                                19
                            ],
                            "type": "local",
                            "view": "\"a\"|\"c\"|\"r\"|\"w\""
                        }
                    ],
                    "desc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n@*param* `mode` — The mode to open the file in.\n\n@*return* `ok` — True on success, false otherwise.\n\n@*return* `err` — The error string if an error occurred.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "finish": [
                        483,
                        28
                    ],
                    "rawdesc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "returns": [
                        {
                            "desc": "True on success, false otherwise.",
                            "name": "ok",
                            "rawdesc": "True on success, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string if an error occurred.",
                            "name": "err",
                            "rawdesc": "The error string if an error occurred.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        483,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:open(mode: \"a\"|\"c\"|\"r\"|\"w\")\n  -> ok: boolean\n  2. err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    483,
                    18
                ],
                "name": "open",
                "rawdesc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "start": [
                    483,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)\n\n\n---\n\n@*param* `bytes` — The number of bytes to read.\n\n@*return* `contents` — The contents of the read bytes.\n\n@*return* `size` — How many bytes have been read.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                495,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                495,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The number of bytes to read.",
                            "finish": [
                                495,
                                24
                            ],
                            "name": "bytes",
                            "rawdesc": "The number of bytes to read.",
                            "start": [
                                495,
                                19
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)\n\n\n---\n\n@*param* `bytes` — The number of bytes to read.\n\n@*return* `contents` — The contents of the read bytes.\n\n@*return* `size` — How many bytes have been read.",
                    "finish": [
                        495,
                        29
                    ],
                    "rawdesc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)",
                    "returns": [
                        {
                            "desc": "The contents of the read bytes.",
                            "name": "contents",
                            "rawdesc": "The contents of the read bytes.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes have been read.",
                            "name": "size",
                            "rawdesc": "How many bytes have been read.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        495,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:read(bytes?: number)\n  -> contents: string\n  2. size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    495,
                    18
                ],
                "name": "read",
                "rawdesc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)",
                "start": [
                    495,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)\n\n@*param* `pos` — The position to seek to\n\n@*return* `success` — Whether the operation was successful",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                505,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                505,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The position to seek to",
                            "finish": [
                                505,
                                22
                            ],
                            "name": "pos",
                            "rawdesc": "The position to seek to",
                            "start": [
                                505,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)\n\n@*param* `pos` — The position to seek to\n\n@*return* `success` — Whether the operation was successful",
                    "finish": [
                        505,
                        27
                    ],
                    "rawdesc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)",
                    "returns": [
                        {
                            "desc": "Whether the operation was successful",
                            "name": "success",
                            "rawdesc": "Whether the operation was successful",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        505,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:seek(pos: number)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    505,
                    18
                ],
                "name": "seek",
                "rawdesc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)",
                "start": [
                    505,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n@*param* `mode` — The buffer mode to use.\n\n@*param* `size` — The maximum size in bytes of the file's buffer.\n\n@*return* `success` — Whether the buffer mode was successfully set.\n\n@*return* `errorstr` — The error string, if the buffer mode could not be set and an error occurred.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                519,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                519,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The buffer mode to use.",
                            "finish": [
                                519,
                                28
                            ],
                            "name": "mode",
                            "rawdesc": "The buffer mode to use.",
                            "start": [
                                519,
                                24
                            ],
                            "type": "local",
                            "view": "\"full\"|\"line\"|\"none\""
                        },
                        {
                            "desc": "The maximum size in bytes of the file's buffer.",
                            "finish": [
                                519,
                                34
                            ],
                            "name": "size",
                            "rawdesc": "The maximum size in bytes of the file's buffer.",
                            "start": [
                                519,
                                30
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n@*param* `mode` — The buffer mode to use.\n\n@*param* `size` — The maximum size in bytes of the file's buffer.\n\n@*return* `success` — Whether the buffer mode was successfully set.\n\n@*return* `errorstr` — The error string, if the buffer mode could not be set and an error occurred.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "finish": [
                        519,
                        39
                    ],
                    "rawdesc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "returns": [
                        {
                            "desc": "Whether the buffer mode was successfully set.",
                            "name": "success",
                            "rawdesc": "Whether the buffer mode was successfully set.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string, if the buffer mode could not be set and an error occurred.",
                            "name": "errorstr",
                            "rawdesc": "The error string, if the buffer mode could not be set and an error occurred.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        519,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:setBuffer(mode: \"full\"|\"line\"|\"none\", size?: number)\n  -> success: boolean\n  2. errorstr: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    519,
                    23
                ],
                "name": "setBuffer",
                "rawdesc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "start": [
                    519,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)\n\n@*return* `pos` — The current position.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                528,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                528,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)\n\n@*return* `pos` — The current position.",
                    "finish": [
                        528,
                        24
                    ],
                    "rawdesc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)",
                    "returns": [
                        {
                            "desc": "The current position.",
                            "name": "pos",
                            "rawdesc": "The current position.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        528,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:tell()\n  -> pos: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    528,
                    18
                ],
                "name": "tell",
                "rawdesc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)",
                "start": [
                    528,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)\n\n\n---\n\n@*param* `data` — The string data to write.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — Whether the operation was successful.\n\n@*return* `err` — The error string if an error occurred.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                541,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                541,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The string data to write.",
                            "finish": [
                                541,
                                24
                            ],
                            "name": "data",
                            "rawdesc": "The string data to write.",
                            "start": [
                                541,
                                20
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to write.",
                            "finish": [
                                541,
                                30
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to write.",
                            "start": [
                                541,
                                26
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)\n\n\n---\n\n@*param* `data` — The string data to write.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — Whether the operation was successful.\n\n@*return* `err` — The error string if an error occurred.",
                    "finish": [
                        541,
                        35
                    ],
                    "rawdesc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)",
                    "returns": [
                        {
                            "desc": "Whether the operation was successful.",
                            "name": "success",
                            "rawdesc": "Whether the operation was successful.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string if an error occurred.",
                            "name": "err",
                            "rawdesc": "The error string if an error occurred.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        541,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:write(data: string, size?: number)\n  -> success: boolean\n  2. err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    541,
                    19
                ],
                "name": "write",
                "rawdesc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)",
                "start": [
                    541,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.DroppedFile",
        "type": "type",
        "view": "love.DroppedFile"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            1466,
                            36
                        ],
                        "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            1466,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Shape"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1466,
                            49
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1466,
                            38
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1466,
                    49
                ],
                "rawdesc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1466,
                    10
                ],
                "type": "doc.class",
                "view": "love.EdgeShape",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2689,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2689,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2689,
                                29
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2689,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2689,
                                33
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2689,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2689,
                                37
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2689,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child to compute the bounding box of.",
                            "finish": [
                                2689,
                                49
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child to compute the bounding box of.",
                            "start": [
                                2689,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                    "finish": [
                        2689,
                        54
                    ],
                    "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                    "returns": [
                        {
                            "desc": "The x position of the top-left point.",
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2689,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeAABB(tx: number, ty: number, tr: number, childIndex?: number)\n  -> topLeftX: number\n  2. topLeftY: number\n  3. bottomRightX: number\n  4. bottomRightY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2689,
                    26
                ],
                "name": "computeAABB",
                "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                "start": [
                    2689,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2702,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2702,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The shape density.",
                            "finish": [
                                2702,
                                34
                            ],
                            "name": "density",
                            "rawdesc": "The shape density.",
                            "start": [
                                2702,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        2702,
                        39
                    ],
                    "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                    "returns": [
                        {
                            "desc": "The x postition of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y postition of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the shape.",
                            "name": "mass",
                            "rawdesc": "The mass of the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2702,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeMass(density: number)\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2702,
                    26
                ],
                "name": "computeMass",
                "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                "start": [
                    2702,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2711,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2711,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                    "finish": [
                        2711,
                        34
                    ],
                    "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                    "returns": [
                        {
                            "desc": "The number of children.",
                            "name": "count",
                            "rawdesc": "The number of children.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2711,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getChildCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2711,
                    28
                ],
                "name": "getChildCount",
                "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                "start": [
                    2711,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getNextVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1479,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1479,
                                8
                            ],
                            "type": "self",
                            "view": "love.EdgeShape"
                        }
                    ],
                    "desc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getNextVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.",
                    "finish": [
                        1479,
                        38
                    ],
                    "rawdesc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getNextVertex)",
                    "returns": [
                        {
                            "desc": "The x-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.",
                            "name": "x",
                            "rawdesc": "The x-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.",
                            "name": "y",
                            "rawdesc": "The y-component of the vertex, or nil if EdgeShape:setNextVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1479,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.EdgeShape:getNextVertex()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1479,
                    32
                ],
                "name": "getNextVertex",
                "rawdesc": "\nGets the vertex that establishes a connection to the next shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getNextVertex)",
                "start": [
                    1479,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the local coordinates of the edge points.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPoints)\n\n@*return* `x1` — The x-component of the first vertex.\n\n@*return* `y1` — The y-component of the first vertex.\n\n@*return* `x2` — The x-component of the second vertex.\n\n@*return* `y2` — The y-component of the second vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1491,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1491,
                                8
                            ],
                            "type": "self",
                            "view": "love.EdgeShape"
                        }
                    ],
                    "desc": "\nReturns the local coordinates of the edge points.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPoints)\n\n@*return* `x1` — The x-component of the first vertex.\n\n@*return* `y1` — The y-component of the first vertex.\n\n@*return* `x2` — The x-component of the second vertex.\n\n@*return* `y2` — The y-component of the second vertex.",
                    "finish": [
                        1491,
                        34
                    ],
                    "rawdesc": "\nReturns the local coordinates of the edge points.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPoints)",
                    "returns": [
                        {
                            "desc": "The x-component of the first vertex.",
                            "name": "x1",
                            "rawdesc": "The x-component of the first vertex.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the first vertex.",
                            "name": "y1",
                            "rawdesc": "The y-component of the first vertex.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the second vertex.",
                            "name": "x2",
                            "rawdesc": "The x-component of the second vertex.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the second vertex.",
                            "name": "y2",
                            "rawdesc": "The y-component of the second vertex.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1491,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.EdgeShape:getPoints()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1491,
                    28
                ],
                "name": "getPoints",
                "rawdesc": "\nReturns the local coordinates of the edge points.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPoints)",
                "start": [
                    1491,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPreviousVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1503,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1503,
                                8
                            ],
                            "type": "self",
                            "view": "love.EdgeShape"
                        }
                    ],
                    "desc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPreviousVertex)\n\n@*return* `x` — The x-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.\n\n@*return* `y` — The y-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.",
                    "finish": [
                        1503,
                        42
                    ],
                    "rawdesc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPreviousVertex)",
                    "returns": [
                        {
                            "desc": "The x-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.",
                            "name": "x",
                            "rawdesc": "The x-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.",
                            "name": "y",
                            "rawdesc": "The y-component of the vertex, or nil if EdgeShape:setPreviousVertex hasn't been called.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1503,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.EdgeShape:getPreviousVertex()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1503,
                    36
                ],
                "name": "getPreviousVertex",
                "rawdesc": "\nGets the vertex that establishes a connection to the previous shape.\n\nSetting next and previous EdgeShape vertices can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:getPreviousVertex)",
                "start": [
                    1503,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2720,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2720,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                    "finish": [
                        2720,
                        30
                    ],
                    "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                    "returns": [
                        {
                            "desc": "The radius of the shape.",
                            "name": "radius",
                            "rawdesc": "The radius of the shape.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2720,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getRadius()\n  -> radius: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2720,
                    24
                ],
                "name": "getRadius",
                "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                "start": [
                    2720,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2731,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2731,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "finish": [
                        2731,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Shape.",
                            "name": "type",
                            "rawdesc": "The type of the Shape.",
                            "type": "function.return",
                            "view": "\"chain\"|\"circle\"|\"edge\"|\"polygon\""
                        }
                    ],
                    "start": [
                        2731,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getType()\n  -> type: \"chain\"|\"circle\"|\"edge\"|\"polygon\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2731,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "start": [
                    2731,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2759,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2759,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The x position of the input line starting point.",
                            "finish": [
                                2759,
                                25
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the input line starting point.",
                            "start": [
                                2759,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line starting point.",
                            "finish": [
                                2759,
                                29
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the input line starting point.",
                            "start": [
                                2759,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the input line end point.",
                            "finish": [
                                2759,
                                33
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the input line end point.",
                            "start": [
                                2759,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line end point.",
                            "finish": [
                                2759,
                                37
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the input line end point.",
                            "start": [
                                2759,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Ray length parameter.",
                            "finish": [
                                2759,
                                50
                            ],
                            "name": "maxFraction",
                            "rawdesc": "Ray length parameter.",
                            "start": [
                                2759,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2759,
                                54
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2759,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2759,
                                58
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2759,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2759,
                                62
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2759,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child the ray gets cast against.",
                            "finish": [
                                2759,
                                74
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child the ray gets cast against.",
                            "start": [
                                2759,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                    "finish": [
                        2759,
                        79
                    ],
                    "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "name": "xn",
                            "rawdesc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "name": "yn",
                            "rawdesc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "name": "fraction",
                            "rawdesc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2759,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:rayCast(x1: number, y1: number, x2: number, y2: number, maxFraction: number, tx: number, ty: number, tr: number, childIndex?: number)\n  -> xn: number\n  2. yn: number\n  3. fraction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2759,
                    22
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                "start": [
                    2759,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setNextVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1515,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1515,
                                8
                            ],
                            "type": "self",
                            "view": "love.EdgeShape"
                        },
                        {
                            "desc": "The x-component of the vertex.",
                            "finish": [
                                1515,
                                34
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the vertex.",
                            "start": [
                                1515,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex.",
                            "finish": [
                                1515,
                                37
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the vertex.",
                            "start": [
                                1515,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setNextVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                    "finish": [
                        1515,
                        42
                    ],
                    "rawdesc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setNextVertex)",
                    "start": [
                        1515,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.EdgeShape:setNextVertex(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1515,
                    32
                ],
                "name": "setNextVertex",
                "rawdesc": "\nSets a vertex that establishes a connection to the next shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setNextVertex)",
                "start": [
                    1515,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setPreviousVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1527,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1527,
                                8
                            ],
                            "type": "self",
                            "view": "love.EdgeShape"
                        },
                        {
                            "desc": "The x-component of the vertex.",
                            "finish": [
                                1527,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the vertex.",
                            "start": [
                                1527,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the vertex.",
                            "finish": [
                                1527,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the vertex.",
                            "start": [
                                1527,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setPreviousVertex)\n\n@*param* `x` — The x-component of the vertex.\n\n@*param* `y` — The y-component of the vertex.",
                    "finish": [
                        1527,
                        46
                    ],
                    "rawdesc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setPreviousVertex)",
                    "start": [
                        1527,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.EdgeShape:setPreviousVertex(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1527,
                    36
                ],
                "name": "setPreviousVertex",
                "rawdesc": "\nSets a vertex that establishes a connection to the previous shape.\n\nThis can help prevent unwanted collisions when a flat shape slides along the edge and moves over to the new shape.\n\n\n[Open in Browser](https://love2d.org/wiki/EdgeShape:setPreviousVertex)",
                "start": [
                    1527,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2773,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2773,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "Translates the shape along the x-axis.",
                            "finish": [
                                2773,
                                27
                            ],
                            "name": "tx",
                            "rawdesc": "Translates the shape along the x-axis.",
                            "start": [
                                2773,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Translates the shape along the y-axis.",
                            "finish": [
                                2773,
                                31
                            ],
                            "name": "ty",
                            "rawdesc": "Translates the shape along the y-axis.",
                            "start": [
                                2773,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Rotates the shape.",
                            "finish": [
                                2773,
                                35
                            ],
                            "name": "tr",
                            "rawdesc": "Rotates the shape.",
                            "start": [
                                2773,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the point.",
                            "finish": [
                                2773,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the point.",
                            "start": [
                                2773,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the point.",
                            "finish": [
                                2773,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the point.",
                            "start": [
                                2773,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                    "finish": [
                        2773,
                        46
                    ],
                    "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                    "returns": [
                        {
                            "desc": "True if inside, false if outside",
                            "name": "hit",
                            "rawdesc": "True if inside, false if outside",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2773,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:testPoint(tx: number, ty: number, tr: number, x: number, y: number)\n  -> hit: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2773,
                    24
                ],
                "name": "testPoint",
                "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                "start": [
                    2773,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.EdgeShape",
        "type": "type",
        "view": "love.EdgeShape"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The different types of effects supported by love.audio.setEffect.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EffectType)\n-- \nlove.EffectType:\n    | \"chorus\" -- Plays multiple copies of the sound with slight pitch and time variation. Used to make sounds sound \"fuller\" or \"thicker\".\n    | \"compressor\" -- Decreases the dynamic range of the sound, making the loud and quiet parts closer in volume, producing a more uniform amplitude throughout time.\n    | \"distortion\" -- Alters the sound by amplifying it until it clips, shearing off parts of the signal, leading to a compressed and distorted sound.\n    | \"echo\" -- Decaying feedback based effect, on the order of seconds. Also known as delay; causes the sound to repeat at regular intervals at a decreasing volume.\n    | \"equalizer\" -- Adjust the frequency components of the sound using a 4-band (low-shelf, two band-pass and a high-shelf) equalizer.\n    | \"flanger\" -- Plays two copies of the sound; while varying the phase, or equivalently delaying one of them, by amounts on the order of milliseconds, resulting in phasing sounds.\n    | \"reverb\" -- Decaying feedback based effect, on the order of milliseconds. Used to simulate the reflection off of the surroundings.\n    | \"ringmodulator\" -- An implementation of amplitude modulation; multiplies the source signal with a simple waveform, to produce either volume changes, or inharmonic overtones.\n```",
                "finish": [
                    897,
                    20
                ],
                "rawdesc": "```lua\n-- \n-- The different types of effects supported by love.audio.setEffect.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EffectType)\n-- \nlove.EffectType:\n    | \"chorus\" -- Plays multiple copies of the sound with slight pitch and time variation. Used to make sounds sound \"fuller\" or \"thicker\".\n    | \"compressor\" -- Decreases the dynamic range of the sound, making the loud and quiet parts closer in volume, producing a more uniform amplitude throughout time.\n    | \"distortion\" -- Alters the sound by amplifying it until it clips, shearing off parts of the signal, leading to a compressed and distorted sound.\n    | \"echo\" -- Decaying feedback based effect, on the order of seconds. Also known as delay; causes the sound to repeat at regular intervals at a decreasing volume.\n    | \"equalizer\" -- Adjust the frequency components of the sound using a 4-band (low-shelf, two band-pass and a high-shelf) equalizer.\n    | \"flanger\" -- Plays two copies of the sound; while varying the phase, or equivalently delaying one of them, by amounts on the order of milliseconds, resulting in phasing sounds.\n    | \"reverb\" -- Decaying feedback based effect, on the order of milliseconds. Used to simulate the reflection off of the surroundings.\n    | \"ringmodulator\" -- An implementation of amplitude modulation; multiplies the source signal with a simple waveform, to produce either volume changes, or inharmonic overtones.\n```",
                "start": [
                    865,
                    10
                ],
                "type": "doc.alias",
                "view": "\"chorus\"|\"compressor\"|\"distortion\"|\"echo\"|\"equalizer\"...(+3)"
            }
        ],
        "fields": [],
        "name": "love.EffectType",
        "type": "type",
        "view": "love.EffectType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The different types of waveforms that can be used with the '''ringmodulator''' EffectType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EffectWaveform)\n-- \nlove.EffectWaveform:\n    | \"sawtooth\" -- A sawtooth wave, also known as a ramp wave. Named for its linear rise, and (near-)instantaneous fall along time.\n    | \"sine\" -- A sine wave. Follows a trigonometric sine function.\n    | \"square\" -- A square wave. Switches between high and low states (near-)instantaneously.\n    | \"triangle\" -- A triangle wave. Follows a linear rise and fall that repeats periodically.\n```",
                "finish": [
                    921,
                    15
                ],
                "rawdesc": "```lua\n-- \n-- The different types of waveforms that can be used with the '''ringmodulator''' EffectType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EffectWaveform)\n-- \nlove.EffectWaveform:\n    | \"sawtooth\" -- A sawtooth wave, also known as a ramp wave. Named for its linear rise, and (near-)instantaneous fall along time.\n    | \"sine\" -- A sine wave. Follows a trigonometric sine function.\n    | \"square\" -- A square wave. Switches between high and low states (near-)instantaneously.\n    | \"triangle\" -- A triangle wave. Follows a linear rise and fall that repeats periodically.\n```",
                "start": [
                    905,
                    10
                ],
                "type": "doc.alias",
                "view": "\"sawtooth\"|\"sine\"|\"square\"|\"triangle\""
            }
        ],
        "fields": [],
        "name": "love.EffectWaveform",
        "type": "type",
        "view": "love.EffectWaveform"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nlove.EncodeFormat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "finish": [
                    231,
                    10
                ],
                "rawdesc": "```lua\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nlove.EncodeFormat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "start": [
                    223,
                    10
                ],
                "type": "doc.alias",
                "view": "\"base64\"|\"hex\""
            }
        ],
        "fields": [],
        "name": "love.EncodeFormat",
        "type": "type",
        "view": "love.EncodeFormat"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nlove.Event:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "finish": [
                    243,
                    8
                ],
                "rawdesc": "```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nlove.Event:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "start": [
                    95,
                    10
                ],
                "type": "doc.alias",
                "view": "\"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)"
            }
        ],
        "fields": [],
        "name": "love.Event",
        "type": "type",
        "view": "love.Event"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            388,
                            32
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            388,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    388,
                    32
                ],
                "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "start": [
                    388,
                    10
                ],
                "type": "doc.class",
                "view": "love.File",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)\n\n@*return* `success` — Whether closing was successful.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                398,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                398,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)\n\n@*return* `success` — Whether closing was successful.",
                    "finish": [
                        398,
                        25
                    ],
                    "rawdesc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)",
                    "returns": [
                        {
                            "desc": "Whether closing was successful.",
                            "name": "success",
                            "rawdesc": "Whether closing was successful.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        398,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:close()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    398,
                    19
                ],
                "name": "close",
                "rawdesc": "\nCloses a File.\n\n\n[Open in Browser](https://love2d.org/wiki/File:close)",
                "start": [
                    398,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)\n\n@*return* `success` — Whether the file successfully flushed any buffered data to the disk.\n\n@*return* `err` — The error string, if an error occurred and the file could not be flushed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                408,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                408,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)\n\n@*return* `success` — Whether the file successfully flushed any buffered data to the disk.\n\n@*return* `err` — The error string, if an error occurred and the file could not be flushed.",
                    "finish": [
                        408,
                        25
                    ],
                    "rawdesc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)",
                    "returns": [
                        {
                            "desc": "Whether the file successfully flushed any buffered data to the disk.",
                            "name": "success",
                            "rawdesc": "Whether the file successfully flushed any buffered data to the disk.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string, if an error occurred and the file could not be flushed.",
                            "name": "err",
                            "rawdesc": "The error string, if an error occurred and the file could not be flushed.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        408,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:flush()\n  -> success: boolean\n  2. err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    408,
                    19
                ],
                "name": "flush",
                "rawdesc": "\nFlushes any buffered written data in the file to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:flush)",
                "start": [
                    408,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n@*return* `mode` — The current buffer mode of the file.\n\n@*return* `size` — The maximum size in bytes of the file's buffer.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                418,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                418,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n@*return* `mode` — The current buffer mode of the file.\n\n@*return* `size` — The maximum size in bytes of the file's buffer.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "finish": [
                        418,
                        29
                    ],
                    "rawdesc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "returns": [
                        {
                            "desc": "The current buffer mode of the file.",
                            "name": "mode",
                            "rawdesc": "The current buffer mode of the file.",
                            "type": "function.return",
                            "view": "\"full\"|\"line\"|\"none\""
                        },
                        {
                            "desc": "The maximum size in bytes of the file's buffer.",
                            "name": "size",
                            "rawdesc": "The maximum size in bytes of the file's buffer.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        418,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getBuffer()\n  -> mode: \"full\"|\"line\"|\"none\"\n  2. size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    418,
                    23
                ],
                "name": "getBuffer",
                "rawdesc": "\nGets the buffer mode of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "start": [
                    418,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)\n\n@*return* `filename` — The filename of the File.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                427,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                427,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)\n\n@*return* `filename` — The filename of the File.",
                    "finish": [
                        427,
                        31
                    ],
                    "rawdesc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)",
                    "returns": [
                        {
                            "desc": "The filename of the File.",
                            "name": "filename",
                            "rawdesc": "The filename of the File.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        427,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getFilename()\n  -> filename: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    427,
                    25
                ],
                "name": "getFilename",
                "rawdesc": "\nGets the filename that the File object was created with. If the file object originated from the love.filedropped callback, the filename will be the full platform-dependent file path.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getFilename)",
                "start": [
                    427,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n@*return* `mode` — The mode this file has been opened with.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                436,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                436,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n@*return* `mode` — The mode this file has been opened with.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "finish": [
                        436,
                        27
                    ],
                    "rawdesc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "returns": [
                        {
                            "desc": "The mode this file has been opened with.",
                            "name": "mode",
                            "rawdesc": "The mode this file has been opened with.",
                            "type": "function.return",
                            "view": "\"a\"|\"c\"|\"r\"|\"w\""
                        }
                    ],
                    "start": [
                        436,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getMode()\n  -> mode: \"a\"|\"c\"|\"r\"|\"w\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    436,
                    21
                ],
                "name": "getMode",
                "rawdesc": "\nGets the FileMode the file has been opened with.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getMode)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "start": [
                    436,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)\n\n@*return* `size` — The file size in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                445,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                445,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)\n\n@*return* `size` — The file size in bytes.",
                    "finish": [
                        445,
                        27
                    ],
                    "rawdesc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)",
                    "returns": [
                        {
                            "desc": "The file size in bytes.",
                            "name": "size",
                            "rawdesc": "The file size in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        445,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    445,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nReturns the file size.\n\n\n[Open in Browser](https://love2d.org/wiki/File:getSize)",
                "start": [
                    445,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)\n\n@*return* `eof` — Whether EOF has been reached.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                454,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                454,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)\n\n@*return* `eof` — Whether EOF has been reached.",
                    "finish": [
                        454,
                        25
                    ],
                    "rawdesc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)",
                    "returns": [
                        {
                            "desc": "Whether EOF has been reached.",
                            "name": "eof",
                            "rawdesc": "Whether EOF has been reached.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        454,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:isEOF()\n  -> eof: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    454,
                    19
                ],
                "name": "isEOF",
                "rawdesc": "\nGets whether end-of-file has been reached.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isEOF)",
                "start": [
                    454,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)\n\n@*return* `open` — True if the file is currently open, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                463,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                463,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)\n\n@*return* `open` — True if the file is currently open, false otherwise.",
                    "finish": [
                        463,
                        26
                    ],
                    "rawdesc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)",
                    "returns": [
                        {
                            "desc": "True if the file is currently open, false otherwise.",
                            "name": "open",
                            "rawdesc": "True if the file is currently open, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        463,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:isOpen()\n  -> open: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    463,
                    20
                ],
                "name": "isOpen",
                "rawdesc": "\nGets whether the file is open.\n\n\n[Open in Browser](https://love2d.org/wiki/File:isOpen)",
                "start": [
                    463,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)\n\n@*return* `iterator` — The iterator (can be used in for loops).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                472,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                472,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)\n\n@*return* `iterator` — The iterator (can be used in for loops).",
                    "finish": [
                        472,
                        25
                    ],
                    "rawdesc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)",
                    "returns": [
                        {
                            "desc": "The iterator (can be used in for loops).",
                            "name": "iterator",
                            "rawdesc": "The iterator (can be used in for loops).",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        472,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:lines()\n  -> iterator: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    472,
                    19
                ],
                "name": "lines",
                "rawdesc": "\nIterate over all the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:lines)",
                "start": [
                    472,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n@*param* `mode` — The mode to open the file in.\n\n@*return* `ok` — True on success, false otherwise.\n\n@*return* `err` — The error string if an error occurred.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                483,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                483,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The mode to open the file in.",
                            "finish": [
                                483,
                                23
                            ],
                            "name": "mode",
                            "rawdesc": "The mode to open the file in.",
                            "start": [
                                483,
                                19
                            ],
                            "type": "local",
                            "view": "\"a\"|\"c\"|\"r\"|\"w\""
                        }
                    ],
                    "desc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n@*param* `mode` — The mode to open the file in.\n\n@*return* `ok` — True on success, false otherwise.\n\n@*return* `err` — The error string if an error occurred.\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "finish": [
                        483,
                        28
                    ],
                    "rawdesc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                    "returns": [
                        {
                            "desc": "True on success, false otherwise.",
                            "name": "ok",
                            "rawdesc": "True on success, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string if an error occurred.",
                            "name": "err",
                            "rawdesc": "The error string if an error occurred.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        483,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:open(mode: \"a\"|\"c\"|\"r\"|\"w\")\n  -> ok: boolean\n  2. err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    483,
                    18
                ],
                "name": "open",
                "rawdesc": "\nOpen the file for write, read or append.\n\n\n[Open in Browser](https://love2d.org/wiki/File:open)\n\n\n```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nmode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "start": [
                    483,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)\n\n\n---\n\n@*param* `bytes` — The number of bytes to read.\n\n@*return* `contents` — The contents of the read bytes.\n\n@*return* `size` — How many bytes have been read.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                495,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                495,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The number of bytes to read.",
                            "finish": [
                                495,
                                24
                            ],
                            "name": "bytes",
                            "rawdesc": "The number of bytes to read.",
                            "start": [
                                495,
                                19
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)\n\n\n---\n\n@*param* `bytes` — The number of bytes to read.\n\n@*return* `contents` — The contents of the read bytes.\n\n@*return* `size` — How many bytes have been read.",
                    "finish": [
                        495,
                        29
                    ],
                    "rawdesc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)",
                    "returns": [
                        {
                            "desc": "The contents of the read bytes.",
                            "name": "contents",
                            "rawdesc": "The contents of the read bytes.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes have been read.",
                            "name": "size",
                            "rawdesc": "How many bytes have been read.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        495,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:read(bytes?: number)\n  -> contents: string\n  2. size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    495,
                    18
                ],
                "name": "read",
                "rawdesc": "\nRead a number of bytes from a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:read)",
                "start": [
                    495,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)\n\n@*param* `pos` — The position to seek to\n\n@*return* `success` — Whether the operation was successful",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                505,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                505,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The position to seek to",
                            "finish": [
                                505,
                                22
                            ],
                            "name": "pos",
                            "rawdesc": "The position to seek to",
                            "start": [
                                505,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)\n\n@*param* `pos` — The position to seek to\n\n@*return* `success` — Whether the operation was successful",
                    "finish": [
                        505,
                        27
                    ],
                    "rawdesc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)",
                    "returns": [
                        {
                            "desc": "Whether the operation was successful",
                            "name": "success",
                            "rawdesc": "Whether the operation was successful",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        505,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:seek(pos: number)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    505,
                    18
                ],
                "name": "seek",
                "rawdesc": "\nSeek to a position in a file\n\n\n[Open in Browser](https://love2d.org/wiki/File:seek)",
                "start": [
                    505,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n@*param* `mode` — The buffer mode to use.\n\n@*param* `size` — The maximum size in bytes of the file's buffer.\n\n@*return* `success` — Whether the buffer mode was successfully set.\n\n@*return* `errorstr` — The error string, if the buffer mode could not be set and an error occurred.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                519,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                519,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The buffer mode to use.",
                            "finish": [
                                519,
                                28
                            ],
                            "name": "mode",
                            "rawdesc": "The buffer mode to use.",
                            "start": [
                                519,
                                24
                            ],
                            "type": "local",
                            "view": "\"full\"|\"line\"|\"none\""
                        },
                        {
                            "desc": "The maximum size in bytes of the file's buffer.",
                            "finish": [
                                519,
                                34
                            ],
                            "name": "size",
                            "rawdesc": "The maximum size in bytes of the file's buffer.",
                            "start": [
                                519,
                                30
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n@*param* `mode` — The buffer mode to use.\n\n@*param* `size` — The maximum size in bytes of the file's buffer.\n\n@*return* `success` — Whether the buffer mode was successfully set.\n\n@*return* `errorstr` — The error string, if the buffer mode could not be set and an error occurred.\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "finish": [
                        519,
                        39
                    ],
                    "rawdesc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                    "returns": [
                        {
                            "desc": "Whether the buffer mode was successfully set.",
                            "name": "success",
                            "rawdesc": "Whether the buffer mode was successfully set.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string, if the buffer mode could not be set and an error occurred.",
                            "name": "errorstr",
                            "rawdesc": "The error string, if the buffer mode could not be set and an error occurred.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        519,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:setBuffer(mode: \"full\"|\"line\"|\"none\", size?: number)\n  -> success: boolean\n  2. errorstr: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    519,
                    23
                ],
                "name": "setBuffer",
                "rawdesc": "\nSets the buffer mode for a file opened for writing or appending. Files with buffering enabled will not write data to the disk until the buffer size limit is reached, depending on the buffer mode.\n\nFile:flush will force any buffered data to be written to the disk.\n\n\n[Open in Browser](https://love2d.org/wiki/File:setBuffer)\n\n\n```lua\n-- \n-- Buffer modes for File objects.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BufferMode)\n-- \nmode:\n    | \"none\" -- No buffering. The result of write and append operations appears immediately.\n    | \"line\" -- Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.\n    | \"full\" -- Full buffering. Write and append operations are always buffered until the buffer size limit is reached.\n```",
                "start": [
                    519,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)\n\n@*return* `pos` — The current position.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                528,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                528,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        }
                    ],
                    "desc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)\n\n@*return* `pos` — The current position.",
                    "finish": [
                        528,
                        24
                    ],
                    "rawdesc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)",
                    "returns": [
                        {
                            "desc": "The current position.",
                            "name": "pos",
                            "rawdesc": "The current position.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        528,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:tell()\n  -> pos: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    528,
                    18
                ],
                "name": "tell",
                "rawdesc": "\nReturns the position in the file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:tell)",
                "start": [
                    528,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)\n\n\n---\n\n@*param* `data` — The string data to write.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — Whether the operation was successful.\n\n@*return* `err` — The error string if an error occurred.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                541,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a file on the filesystem. A function that takes a file path can also take a File.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                541,
                                8
                            ],
                            "type": "self",
                            "view": "love.File"
                        },
                        {
                            "desc": "The string data to write.",
                            "finish": [
                                541,
                                24
                            ],
                            "name": "data",
                            "rawdesc": "The string data to write.",
                            "start": [
                                541,
                                20
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to write.",
                            "finish": [
                                541,
                                30
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to write.",
                            "start": [
                                541,
                                26
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)\n\n\n---\n\n@*param* `data` — The string data to write.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — Whether the operation was successful.\n\n@*return* `err` — The error string if an error occurred.",
                    "finish": [
                        541,
                        35
                    ],
                    "rawdesc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)",
                    "returns": [
                        {
                            "desc": "Whether the operation was successful.",
                            "name": "success",
                            "rawdesc": "Whether the operation was successful.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error string if an error occurred.",
                            "name": "err",
                            "rawdesc": "The error string if an error occurred.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        541,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.File:write(data: string, size?: number)\n  -> success: boolean\n  2. err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    541,
                    19
                ],
                "name": "write",
                "rawdesc": "\nWrite data to a file.\n\n\n[Open in Browser](https://love2d.org/wiki/File:write)",
                "start": [
                    541,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.File",
        "type": "type",
        "view": "love.File"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nData representing the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            549,
                            34
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            549,
                            25
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            549,
                            47
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            549,
                            36
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    549,
                    47
                ],
                "rawdesc": "\nData representing the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "start": [
                    549,
                    10
                ],
                "type": "doc.class",
                "view": "love.FileData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the extension of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getExtension)\n\n@*return* `ext` — The extension of the file the FileData represents.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nData representing the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                559,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nData representing the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                559,
                                8
                            ],
                            "type": "self",
                            "view": "love.FileData"
                        }
                    ],
                    "desc": "\nGets the extension of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getExtension)\n\n@*return* `ext` — The extension of the file the FileData represents.",
                    "finish": [
                        559,
                        36
                    ],
                    "rawdesc": "\nGets the extension of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getExtension)",
                    "returns": [
                        {
                            "desc": "The extension of the file the FileData represents.",
                            "name": "ext",
                            "rawdesc": "The extension of the file the FileData represents.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        559,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.FileData:getExtension()\n  -> ext: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    559,
                    30
                ],
                "name": "getExtension",
                "rawdesc": "\nGets the extension of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getExtension)",
                "start": [
                    559,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filename of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getFilename)\n\n@*return* `name` — The name of the file the FileData represents.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nData representing the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "finish": [
                                568,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nData representing the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                            "start": [
                                568,
                                8
                            ],
                            "type": "self",
                            "view": "love.FileData"
                        }
                    ],
                    "desc": "\nGets the filename of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getFilename)\n\n@*return* `name` — The name of the file the FileData represents.",
                    "finish": [
                        568,
                        35
                    ],
                    "rawdesc": "\nGets the filename of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getFilename)",
                    "returns": [
                        {
                            "desc": "The name of the file the FileData represents.",
                            "name": "name",
                            "rawdesc": "The name of the file the FileData represents.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        568,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.FileData:getFilename()\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    568,
                    29
                ],
                "name": "getFilename",
                "rawdesc": "\nGets the filename of the FileData.\n\n\n[Open in Browser](https://love2d.org/wiki/FileData:getFilename)",
                "start": [
                    568,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.FileData",
        "type": "type",
        "view": "love.FileData"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How to decode a given FileData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileDecoder)\n-- \nlove.FileDecoder:\n    | \"file\" -- The data is unencoded.\n    | \"base64\" -- The data is base64-encoded.\n```",
                "finish": [
                    604,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- How to decode a given FileData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileDecoder)\n-- \nlove.FileDecoder:\n    | \"file\" -- The data is unencoded.\n    | \"base64\" -- The data is base64-encoded.\n```",
                "start": [
                    596,
                    10
                ],
                "type": "doc.alias",
                "view": "\"base64\"|\"file\""
            }
        ],
        "fields": [],
        "name": "love.FileDecoder",
        "type": "type",
        "view": "love.FileDecoder"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nlove.FileMode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "finish": [
                    628,
                    8
                ],
                "rawdesc": "```lua\n-- \n-- The different modes you can open a File in.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileMode)\n-- \nlove.FileMode:\n    | \"r\" -- Open a file for read.\n    | \"w\" -- Open a file for write.\n    | \"a\" -- Open a file for append.\n    | \"c\" -- Do not open a file (represents a closed file.)\n```",
                "start": [
                    612,
                    10
                ],
                "type": "doc.alias",
                "view": "\"a\"|\"c\"|\"r\"|\"w\""
            }
        ],
        "fields": [],
        "name": "love.FileMode",
        "type": "type",
        "view": "love.FileMode"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nlove.FileType:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                "finish": [
                    652,
                    12
                ],
                "rawdesc": "```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nlove.FileType:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                "start": [
                    636,
                    10
                ],
                "type": "doc.alias",
                "view": "\"directory\"|\"file\"|\"other\"|\"symlink\""
            }
        ],
        "fields": [],
        "name": "love.FileType",
        "type": "type",
        "view": "love.FileType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nlove.FilterMode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "finish": [
                    3630,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nlove.FilterMode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3622,
                    10
                ],
                "type": "doc.alias",
                "view": "\"linear\"|\"nearest\""
            }
        ],
        "fields": [],
        "name": "love.FilterMode",
        "type": "type",
        "view": "love.FilterMode"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of filters for Sources.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterType)\n-- \nlove.FilterType:\n    | \"lowpass\" -- Low-pass filter. High frequency sounds are attenuated.\n    | \"highpass\" -- High-pass filter. Low frequency sounds are attenuated.\n    | \"bandpass\" -- Band-pass filter. Both high and low frequency sounds are attenuated based on the given parameters.\n```",
                "finish": [
                    941,
                    15
                ],
                "rawdesc": "```lua\n-- \n-- Types of filters for Sources.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterType)\n-- \nlove.FilterType:\n    | \"lowpass\" -- Low-pass filter. High frequency sounds are attenuated.\n    | \"highpass\" -- High-pass filter. Low frequency sounds are attenuated.\n    | \"bandpass\" -- Band-pass filter. Both high and low frequency sounds are attenuated based on the given parameters.\n```",
                "start": [
                    929,
                    10
                ],
                "type": "doc.alias",
                "view": "\"bandpass\"|\"highpass\"|\"lowpass\""
            }
        ],
        "fields": [],
        "name": "love.FilterType",
        "type": "type",
        "view": "love.FilterType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1535,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1535,
                            24
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1535,
                    35
                ],
                "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1535,
                    10
                ],
                "type": "doc.class",
                "view": "love.Fixture",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1544,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1544,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nDestroys the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:destroy)",
                    "finish": [
                        1544,
                        30
                    ],
                    "rawdesc": "\nDestroys the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:destroy)",
                    "start": [
                        1544,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1544,
                    24
                ],
                "name": "destroy",
                "rawdesc": "\nDestroys the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:destroy)",
                "start": [
                    1544,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the body to which the fixture is attached.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBody)\n\n@*return* `body` — The parent body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1553,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1553,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the body to which the fixture is attached.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBody)\n\n@*return* `body` — The parent body.",
                    "finish": [
                        1553,
                        30
                    ],
                    "rawdesc": "\nReturns the body to which the fixture is attached.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBody)",
                    "returns": [
                        {
                            "desc": "The parent body.",
                            "name": "body",
                            "rawdesc": "The parent body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1553,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getBody()\n  -> body: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1553,
                    24
                ],
                "name": "getBody",
                "rawdesc": "\nReturns the body to which the fixture is attached.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBody)",
                "start": [
                    1553,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the points of the fixture bounding box. In case the fixture has multiple children a 1-based index can be specified. For example, a fixture will have multiple children with a chain shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBoundingBox)\n\n@*param* `index` — A bounding box of the fixture.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1566,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1566,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "A bounding box of the fixture.",
                            "finish": [
                                1566,
                                37
                            ],
                            "name": "index",
                            "rawdesc": "A bounding box of the fixture.",
                            "start": [
                                1566,
                                32
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReturns the points of the fixture bounding box. In case the fixture has multiple children a 1-based index can be specified. For example, a fixture will have multiple children with a chain shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBoundingBox)\n\n@*param* `index` — A bounding box of the fixture.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                    "finish": [
                        1566,
                        42
                    ],
                    "rawdesc": "\nReturns the points of the fixture bounding box. In case the fixture has multiple children a 1-based index can be specified. For example, a fixture will have multiple children with a chain shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBoundingBox)",
                    "returns": [
                        {
                            "desc": "The x position of the top-left point.",
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1566,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getBoundingBox(index?: number)\n  -> topLeftX: number\n  2. topLeftY: number\n  3. bottomRightX: number\n  4. bottomRightY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1566,
                    31
                ],
                "name": "getBoundingBox",
                "rawdesc": "\nReturns the points of the fixture bounding box. In case the fixture has multiple children a 1-based index can be specified. For example, a fixture will have multiple children with a chain shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getBoundingBox)",
                "start": [
                    1566,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the categories the fixture belongs to.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getCategory)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1574,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1574,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the categories the fixture belongs to.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getCategory)",
                    "finish": [
                        1574,
                        34
                    ],
                    "rawdesc": "\nReturns the categories the fixture belongs to.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getCategory)",
                    "start": [
                        1574,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getCategory()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1574,
                    28
                ],
                "name": "getCategory",
                "rawdesc": "\nReturns the categories the fixture belongs to.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getCategory)",
                "start": [
                    1574,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the density of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getDensity)\n\n@*return* `density` — The fixture density in kilograms per square meter.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1583,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1583,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the density of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getDensity)\n\n@*return* `density` — The fixture density in kilograms per square meter.",
                    "finish": [
                        1583,
                        33
                    ],
                    "rawdesc": "\nReturns the density of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getDensity)",
                    "returns": [
                        {
                            "desc": "The fixture density in kilograms per square meter.",
                            "name": "density",
                            "rawdesc": "The fixture density in kilograms per square meter.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1583,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getDensity()\n  -> density: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1583,
                    27
                ],
                "name": "getDensity",
                "rawdesc": "\nReturns the density of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getDensity)",
                "start": [
                    1583,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the filter data of the fixture.\n\nCategories and masks are encoded as the bits of a 16-bit integer.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFilterData)\n\n@*return* `categories` — The categories as an integer from 0 to 65535.\n\n@*return* `mask` — The mask as an integer from 0 to 65535.\n\n@*return* `group` — The group as an integer from -32768 to 32767.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1596,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1596,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the filter data of the fixture.\n\nCategories and masks are encoded as the bits of a 16-bit integer.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFilterData)\n\n@*return* `categories` — The categories as an integer from 0 to 65535.\n\n@*return* `mask` — The mask as an integer from 0 to 65535.\n\n@*return* `group` — The group as an integer from -32768 to 32767.",
                    "finish": [
                        1596,
                        36
                    ],
                    "rawdesc": "\nReturns the filter data of the fixture.\n\nCategories and masks are encoded as the bits of a 16-bit integer.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFilterData)",
                    "returns": [
                        {
                            "desc": "The categories as an integer from 0 to 65535.",
                            "name": "categories",
                            "rawdesc": "The categories as an integer from 0 to 65535.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mask as an integer from 0 to 65535.",
                            "name": "mask",
                            "rawdesc": "The mask as an integer from 0 to 65535.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The group as an integer from -32768 to 32767.",
                            "name": "group",
                            "rawdesc": "The group as an integer from -32768 to 32767.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1596,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getFilterData()\n  -> categories: number\n  2. mask: number\n  3. group: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1596,
                    30
                ],
                "name": "getFilterData",
                "rawdesc": "\nReturns the filter data of the fixture.\n\nCategories and masks are encoded as the bits of a 16-bit integer.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFilterData)",
                "start": [
                    1596,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the friction of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFriction)\n\n@*return* `friction` — The fixture friction.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1605,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1605,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the friction of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFriction)\n\n@*return* `friction` — The fixture friction.",
                    "finish": [
                        1605,
                        34
                    ],
                    "rawdesc": "\nReturns the friction of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFriction)",
                    "returns": [
                        {
                            "desc": "The fixture friction.",
                            "name": "friction",
                            "rawdesc": "The fixture friction.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1605,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getFriction()\n  -> friction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1605,
                    28
                ],
                "name": "getFriction",
                "rawdesc": "\nReturns the friction of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getFriction)",
                "start": [
                    1605,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getGroupIndex)\n\n@*return* `group` — The group of the fixture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1616,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1616,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getGroupIndex)\n\n@*return* `group` — The group of the fixture.",
                    "finish": [
                        1616,
                        36
                    ],
                    "rawdesc": "\nReturns the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getGroupIndex)",
                    "returns": [
                        {
                            "desc": "The group of the fixture.",
                            "name": "group",
                            "rawdesc": "The group of the fixture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1616,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getGroupIndex()\n  -> group: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1616,
                    30
                ],
                "name": "getGroupIndex",
                "rawdesc": "\nReturns the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getGroupIndex)",
                "start": [
                    1616,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns which categories this fixture should '''NOT''' collide with.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMask)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1624,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1624,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns which categories this fixture should '''NOT''' collide with.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMask)",
                    "finish": [
                        1624,
                        30
                    ],
                    "rawdesc": "\nReturns which categories this fixture should '''NOT''' collide with.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMask)",
                    "start": [
                        1624,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getMask()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1624,
                    24
                ],
                "name": "getMask",
                "rawdesc": "\nReturns which categories this fixture should '''NOT''' collide with.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMask)",
                "start": [
                    1624,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the mass, its center and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMassData)\n\n@*return* `x` — The x position of the center of mass.\n\n@*return* `y` — The y position of the center of mass.\n\n@*return* `mass` — The mass of the fixture.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1636,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1636,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the mass, its center and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMassData)\n\n@*return* `x` — The x position of the center of mass.\n\n@*return* `y` — The y position of the center of mass.\n\n@*return* `mass` — The mass of the fixture.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        1636,
                        34
                    ],
                    "rawdesc": "\nReturns the mass, its center and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMassData)",
                    "returns": [
                        {
                            "desc": "The x position of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x position of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y position of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the fixture.",
                            "name": "mass",
                            "rawdesc": "The mass of the fixture.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1636,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getMassData()\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1636,
                    28
                ],
                "name": "getMassData",
                "rawdesc": "\nReturns the mass, its center and the rotational inertia.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getMassData)",
                "start": [
                    1636,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getRestitution)\n\n@*return* `restitution` — The fixture restitution.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1645,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1645,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getRestitution)\n\n@*return* `restitution` — The fixture restitution.",
                    "finish": [
                        1645,
                        37
                    ],
                    "rawdesc": "\nReturns the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getRestitution)",
                    "returns": [
                        {
                            "desc": "The fixture restitution.",
                            "name": "restitution",
                            "rawdesc": "The fixture restitution.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1645,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getRestitution()\n  -> restitution: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1645,
                    31
                ],
                "name": "getRestitution",
                "rawdesc": "\nReturns the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getRestitution)",
                "start": [
                    1645,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the shape of the fixture. This shape is a reference to the actual data used in the simulation. It's possible to change its values between timesteps.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getShape)\n\n@*return* `shape` — The fixture's shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1654,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1654,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the shape of the fixture. This shape is a reference to the actual data used in the simulation. It's possible to change its values between timesteps.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getShape)\n\n@*return* `shape` — The fixture's shape.",
                    "finish": [
                        1654,
                        31
                    ],
                    "rawdesc": "\nReturns the shape of the fixture. This shape is a reference to the actual data used in the simulation. It's possible to change its values between timesteps.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getShape)",
                    "returns": [
                        {
                            "desc": "The fixture's shape.",
                            "name": "shape",
                            "rawdesc": "The fixture's shape.",
                            "type": "function.return",
                            "view": "love.Shape"
                        }
                    ],
                    "start": [
                        1654,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getShape()\n  -> shape: love.Shape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1654,
                    25
                ],
                "name": "getShape",
                "rawdesc": "\nReturns the shape of the fixture. This shape is a reference to the actual data used in the simulation. It's possible to change its values between timesteps.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getShape)",
                "start": [
                    1654,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getUserData)\n\n@*return* `value` — The Lua value associated with the fixture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1663,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1663,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getUserData)\n\n@*return* `value` — The Lua value associated with the fixture.",
                    "finish": [
                        1663,
                        34
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the fixture.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the fixture.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1663,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1663,
                    28
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:getUserData)",
                "start": [
                    1663,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Fixture is destroyed. Destroyed fixtures cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isDestroyed)\n\n@*return* `destroyed` — Whether the Fixture is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1672,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1672,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nGets whether the Fixture is destroyed. Destroyed fixtures cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isDestroyed)\n\n@*return* `destroyed` — Whether the Fixture is destroyed.",
                    "finish": [
                        1672,
                        34
                    ],
                    "rawdesc": "\nGets whether the Fixture is destroyed. Destroyed fixtures cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Fixture is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Fixture is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1672,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1672,
                    28
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Fixture is destroyed. Destroyed fixtures cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isDestroyed)",
                "start": [
                    1672,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the fixture is a sensor.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isSensor)\n\n@*return* `sensor` — If the fixture is a sensor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1681,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1681,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns whether the fixture is a sensor.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isSensor)\n\n@*return* `sensor` — If the fixture is a sensor.",
                    "finish": [
                        1681,
                        31
                    ],
                    "rawdesc": "\nReturns whether the fixture is a sensor.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isSensor)",
                    "returns": [
                        {
                            "desc": "If the fixture is a sensor.",
                            "name": "sensor",
                            "rawdesc": "If the fixture is a sensor.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1681,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:isSensor()\n  -> sensor: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1681,
                    25
                ],
                "name": "isSensor",
                "rawdesc": "\nReturns whether the fixture is a sensor.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:isSensor)",
                "start": [
                    1681,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray against the shape of the fixture and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fifth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1706,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1706,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The x position of the input line starting point.",
                            "finish": [
                                1706,
                                27
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the input line starting point.",
                            "start": [
                                1706,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line starting point.",
                            "finish": [
                                1706,
                                31
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the input line starting point.",
                            "start": [
                                1706,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the input line end point.",
                            "finish": [
                                1706,
                                35
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the input line end point.",
                            "start": [
                                1706,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line end point.",
                            "finish": [
                                1706,
                                39
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the input line end point.",
                            "start": [
                                1706,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Ray length parameter.",
                            "finish": [
                                1706,
                                52
                            ],
                            "name": "maxFraction",
                            "rawdesc": "Ray length parameter.",
                            "start": [
                                1706,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child the ray gets cast against.",
                            "finish": [
                                1706,
                                64
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child the ray gets cast against.",
                            "start": [
                                1706,
                                54
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCasts a ray against the shape of the fixture and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fifth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                    "finish": [
                        1706,
                        69
                    ],
                    "rawdesc": "\nCasts a ray against the shape of the fixture and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fifth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:rayCast)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "name": "xn",
                            "rawdesc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "name": "yn",
                            "rawdesc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "name": "fraction",
                            "rawdesc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1706,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:rayCast(x1: number, y1: number, x2: number, y2: number, maxFraction: number, childIndex?: number)\n  -> xn: number\n  2. yn: number\n  3. fraction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1706,
                    24
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray against the shape of the fixture and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fifth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:rayCast)",
                "start": [
                    1706,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the categories the fixture belongs to. There can be up to 16 categories represented as a number from 1 to 16.\n\nAll fixture's default category is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setCategory)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1717,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1717,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "finish": [
                                1717,
                                32
                            ],
                            "start": [
                                1717,
                                29
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the categories the fixture belongs to. There can be up to 16 categories represented as a number from 1 to 16.\n\nAll fixture's default category is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setCategory)",
                    "finish": [
                        1717,
                        37
                    ],
                    "rawdesc": "\nSets the categories the fixture belongs to. There can be up to 16 categories represented as a number from 1 to 16.\n\nAll fixture's default category is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setCategory)",
                    "start": [
                        1717,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setCategory(...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1717,
                    28
                ],
                "name": "setCategory",
                "rawdesc": "\nSets the categories the fixture belongs to. There can be up to 16 categories represented as a number from 1 to 16.\n\nAll fixture's default category is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setCategory)",
                "start": [
                    1717,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the density of the fixture. Call Body:resetMassData if this needs to take effect immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setDensity)\n\n@*param* `density` — The fixture density in kilograms per square meter.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1726,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1726,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The fixture density in kilograms per square meter.",
                            "finish": [
                                1726,
                                35
                            ],
                            "name": "density",
                            "rawdesc": "The fixture density in kilograms per square meter.",
                            "start": [
                                1726,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the density of the fixture. Call Body:resetMassData if this needs to take effect immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setDensity)\n\n@*param* `density` — The fixture density in kilograms per square meter.",
                    "finish": [
                        1726,
                        40
                    ],
                    "rawdesc": "\nSets the density of the fixture. Call Body:resetMassData if this needs to take effect immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setDensity)",
                    "start": [
                        1726,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setDensity(density: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1726,
                    27
                ],
                "name": "setDensity",
                "rawdesc": "\nSets the density of the fixture. Call Body:resetMassData if this needs to take effect immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setDensity)",
                "start": [
                    1726,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filter data of the fixture.\n\nGroups, categories, and mask can be used to define the collision behaviour of the fixture.\n\nIf two fixtures are in the same group they either always collide if the group is positive, or never collide if it's negative. If the group is zero or they do not match, then the contact filter checks if the fixtures select a category of the other fixture with their masks. The fixtures do not collide if that's not the case. If they do have each other's categories selected, the return value of the custom contact filter will be used. They always collide if none was set.\n\nThere can be up to 16 categories. Categories and masks are encoded as the bits of a 16-bit integer.\n\nWhen created, prior to calling this function, all fixtures have category set to 1, mask set to 65535 (all categories) and group set to 0.\n\nThis function allows setting all filter data for a fixture at once. To set only the categories, the mask or the group, you can use Fixture:setCategory, Fixture:setMask or Fixture:setGroupIndex respectively.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFilterData)\n\n@*param* `categories` — The categories as an integer from 0 to 65535.\n\n@*param* `mask` — The mask as an integer from 0 to 65535.\n\n@*param* `group` — The group as an integer from -32768 to 32767.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1747,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1747,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The categories as an integer from 0 to 65535.",
                            "finish": [
                                1747,
                                41
                            ],
                            "name": "categories",
                            "rawdesc": "The categories as an integer from 0 to 65535.",
                            "start": [
                                1747,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The mask as an integer from 0 to 65535.",
                            "finish": [
                                1747,
                                47
                            ],
                            "name": "mask",
                            "rawdesc": "The mask as an integer from 0 to 65535.",
                            "start": [
                                1747,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The group as an integer from -32768 to 32767.",
                            "finish": [
                                1747,
                                54
                            ],
                            "name": "group",
                            "rawdesc": "The group as an integer from -32768 to 32767.",
                            "start": [
                                1747,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the filter data of the fixture.\n\nGroups, categories, and mask can be used to define the collision behaviour of the fixture.\n\nIf two fixtures are in the same group they either always collide if the group is positive, or never collide if it's negative. If the group is zero or they do not match, then the contact filter checks if the fixtures select a category of the other fixture with their masks. The fixtures do not collide if that's not the case. If they do have each other's categories selected, the return value of the custom contact filter will be used. They always collide if none was set.\n\nThere can be up to 16 categories. Categories and masks are encoded as the bits of a 16-bit integer.\n\nWhen created, prior to calling this function, all fixtures have category set to 1, mask set to 65535 (all categories) and group set to 0.\n\nThis function allows setting all filter data for a fixture at once. To set only the categories, the mask or the group, you can use Fixture:setCategory, Fixture:setMask or Fixture:setGroupIndex respectively.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFilterData)\n\n@*param* `categories` — The categories as an integer from 0 to 65535.\n\n@*param* `mask` — The mask as an integer from 0 to 65535.\n\n@*param* `group` — The group as an integer from -32768 to 32767.",
                    "finish": [
                        1747,
                        59
                    ],
                    "rawdesc": "\nSets the filter data of the fixture.\n\nGroups, categories, and mask can be used to define the collision behaviour of the fixture.\n\nIf two fixtures are in the same group they either always collide if the group is positive, or never collide if it's negative. If the group is zero or they do not match, then the contact filter checks if the fixtures select a category of the other fixture with their masks. The fixtures do not collide if that's not the case. If they do have each other's categories selected, the return value of the custom contact filter will be used. They always collide if none was set.\n\nThere can be up to 16 categories. Categories and masks are encoded as the bits of a 16-bit integer.\n\nWhen created, prior to calling this function, all fixtures have category set to 1, mask set to 65535 (all categories) and group set to 0.\n\nThis function allows setting all filter data for a fixture at once. To set only the categories, the mask or the group, you can use Fixture:setCategory, Fixture:setMask or Fixture:setGroupIndex respectively.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFilterData)",
                    "start": [
                        1747,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setFilterData(categories: number, mask: number, group: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1747,
                    30
                ],
                "name": "setFilterData",
                "rawdesc": "\nSets the filter data of the fixture.\n\nGroups, categories, and mask can be used to define the collision behaviour of the fixture.\n\nIf two fixtures are in the same group they either always collide if the group is positive, or never collide if it's negative. If the group is zero or they do not match, then the contact filter checks if the fixtures select a category of the other fixture with their masks. The fixtures do not collide if that's not the case. If they do have each other's categories selected, the return value of the custom contact filter will be used. They always collide if none was set.\n\nThere can be up to 16 categories. Categories and masks are encoded as the bits of a 16-bit integer.\n\nWhen created, prior to calling this function, all fixtures have category set to 1, mask set to 65535 (all categories) and group set to 0.\n\nThis function allows setting all filter data for a fixture at once. To set only the categories, the mask or the group, you can use Fixture:setCategory, Fixture:setMask or Fixture:setGroupIndex respectively.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFilterData)",
                "start": [
                    1747,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the friction of the fixture.\n\nFriction determines how shapes react when they 'slide' along other shapes. Low friction indicates a slippery surface, like ice, while high friction indicates a rough surface, like concrete. Range: 0.0 - 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFriction)\n\n@*param* `friction` — The fixture friction.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1758,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1758,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The fixture friction.",
                            "finish": [
                                1758,
                                37
                            ],
                            "name": "friction",
                            "rawdesc": "The fixture friction.",
                            "start": [
                                1758,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the friction of the fixture.\n\nFriction determines how shapes react when they 'slide' along other shapes. Low friction indicates a slippery surface, like ice, while high friction indicates a rough surface, like concrete. Range: 0.0 - 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFriction)\n\n@*param* `friction` — The fixture friction.",
                    "finish": [
                        1758,
                        42
                    ],
                    "rawdesc": "\nSets the friction of the fixture.\n\nFriction determines how shapes react when they 'slide' along other shapes. Low friction indicates a slippery surface, like ice, while high friction indicates a rough surface, like concrete. Range: 0.0 - 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFriction)",
                    "start": [
                        1758,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setFriction(friction: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1758,
                    28
                ],
                "name": "setFriction",
                "rawdesc": "\nSets the friction of the fixture.\n\nFriction determines how shapes react when they 'slide' along other shapes. Low friction indicates a slippery surface, like ice, while high friction indicates a rough surface, like concrete. Range: 0.0 - 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setFriction)",
                "start": [
                    1758,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setGroupIndex)\n\n@*param* `group` — The group as an integer from -32768 to 32767.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1769,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1769,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The group as an integer from -32768 to 32767.",
                            "finish": [
                                1769,
                                36
                            ],
                            "name": "group",
                            "rawdesc": "The group as an integer from -32768 to 32767.",
                            "start": [
                                1769,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setGroupIndex)\n\n@*param* `group` — The group as an integer from -32768 to 32767.",
                    "finish": [
                        1769,
                        41
                    ],
                    "rawdesc": "\nSets the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setGroupIndex)",
                    "start": [
                        1769,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setGroupIndex(group: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1769,
                    30
                ],
                "name": "setGroupIndex",
                "rawdesc": "\nSets the group the fixture belongs to. Fixtures with the same group will always collide if the group is positive or never collide if it's negative. The group zero means no group.\n\nThe groups range from -32768 to 32767.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setGroupIndex)",
                "start": [
                    1769,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the category mask of the fixture. There can be up to 16 categories represented as a number from 1 to 16.\n\nThis fixture will '''NOT''' collide with the fixtures that are in the selected categories if the other fixture also has a category of this fixture selected.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setMask)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1780,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1780,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "finish": [
                                1780,
                                28
                            ],
                            "start": [
                                1780,
                                25
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the category mask of the fixture. There can be up to 16 categories represented as a number from 1 to 16.\n\nThis fixture will '''NOT''' collide with the fixtures that are in the selected categories if the other fixture also has a category of this fixture selected.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setMask)",
                    "finish": [
                        1780,
                        33
                    ],
                    "rawdesc": "\nSets the category mask of the fixture. There can be up to 16 categories represented as a number from 1 to 16.\n\nThis fixture will '''NOT''' collide with the fixtures that are in the selected categories if the other fixture also has a category of this fixture selected.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setMask)",
                    "start": [
                        1780,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setMask(...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1780,
                    24
                ],
                "name": "setMask",
                "rawdesc": "\nSets the category mask of the fixture. There can be up to 16 categories represented as a number from 1 to 16.\n\nThis fixture will '''NOT''' collide with the fixtures that are in the selected categories if the other fixture also has a category of this fixture selected.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setMask)",
                "start": [
                    1780,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setRestitution)\n\n@*param* `restitution` — The fixture restitution.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1789,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1789,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The fixture restitution.",
                            "finish": [
                                1789,
                                43
                            ],
                            "name": "restitution",
                            "rawdesc": "The fixture restitution.",
                            "start": [
                                1789,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setRestitution)\n\n@*param* `restitution` — The fixture restitution.",
                    "finish": [
                        1789,
                        48
                    ],
                    "rawdesc": "\nSets the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setRestitution)",
                    "start": [
                        1789,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setRestitution(restitution: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1789,
                    31
                ],
                "name": "setRestitution",
                "rawdesc": "\nSets the restitution of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setRestitution)",
                "start": [
                    1789,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the fixture should act as a sensor.\n\nSensors do not cause collision responses, but the begin-contact and end-contact World callbacks will still be called for this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setSensor)\n\n@*param* `sensor` — The sensor status.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1800,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1800,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The sensor status.",
                            "finish": [
                                1800,
                                33
                            ],
                            "name": "sensor",
                            "rawdesc": "The sensor status.",
                            "start": [
                                1800,
                                27
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the fixture should act as a sensor.\n\nSensors do not cause collision responses, but the begin-contact and end-contact World callbacks will still be called for this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setSensor)\n\n@*param* `sensor` — The sensor status.",
                    "finish": [
                        1800,
                        38
                    ],
                    "rawdesc": "\nSets whether the fixture should act as a sensor.\n\nSensors do not cause collision responses, but the begin-contact and end-contact World callbacks will still be called for this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setSensor)",
                    "start": [
                        1800,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setSensor(sensor: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1800,
                    26
                ],
                "name": "setSensor",
                "rawdesc": "\nSets whether the fixture should act as a sensor.\n\nSensors do not cause collision responses, but the begin-contact and end-contact World callbacks will still be called for this fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setSensor)",
                "start": [
                    1800,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the fixture.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setUserData)\n\n@*param* `value` — The Lua value to associate with the fixture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1811,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1811,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The Lua value to associate with the fixture.",
                            "finish": [
                                1811,
                                34
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the fixture.",
                            "start": [
                                1811,
                                29
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the fixture.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setUserData)\n\n@*param* `value` — The Lua value to associate with the fixture.",
                    "finish": [
                        1811,
                        39
                    ],
                    "rawdesc": "\nAssociates a Lua value with the fixture.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setUserData)",
                    "start": [
                        1811,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1811,
                    28
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the fixture.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:setUserData)",
                "start": [
                    1811,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if a point is inside the shape of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:testPoint)\n\n@*param* `x` — The x position of the point.\n\n@*param* `y` — The y position of the point.\n\n@*return* `isInside` — True if the point is inside or false if it is outside.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1822,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFixtures attach shapes to bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1822,
                                8
                            ],
                            "type": "self",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The x position of the point.",
                            "finish": [
                                1822,
                                28
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the point.",
                            "start": [
                                1822,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the point.",
                            "finish": [
                                1822,
                                31
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the point.",
                            "start": [
                                1822,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nChecks if a point is inside the shape of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:testPoint)\n\n@*param* `x` — The x position of the point.\n\n@*param* `y` — The y position of the point.\n\n@*return* `isInside` — True if the point is inside or false if it is outside.",
                    "finish": [
                        1822,
                        36
                    ],
                    "rawdesc": "\nChecks if a point is inside the shape of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:testPoint)",
                    "returns": [
                        {
                            "desc": "True if the point is inside or false if it is outside.",
                            "name": "isInside",
                            "rawdesc": "True if the point is inside or false if it is outside.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1822,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Fixture:testPoint(x: number, y: number)\n  -> isInside: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1822,
                    26
                ],
                "name": "testPoint",
                "rawdesc": "\nChecks if a point is inside the shape of the fixture.\n\n\n[Open in Browser](https://love2d.org/wiki/Fixture:testPoint)",
                "start": [
                    1822,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Fixture",
        "type": "type",
        "view": "love.Fixture"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1462,
                            32
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1462,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1462,
                    32
                ],
                "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    1462,
                    10
                ],
                "type": "doc.class",
                "view": "love.Font",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the ascent of the Font.\n\nThe ascent spans the distance between the baseline and the top of the glyph that reaches farthest from the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getAscent)\n\n@*return* `ascent` — The ascent of the Font in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1474,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1474,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the ascent of the Font.\n\nThe ascent spans the distance between the baseline and the top of the glyph that reaches farthest from the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getAscent)\n\n@*return* `ascent` — The ascent of the Font in pixels.",
                    "finish": [
                        1474,
                        29
                    ],
                    "rawdesc": "\nGets the ascent of the Font.\n\nThe ascent spans the distance between the baseline and the top of the glyph that reaches farthest from the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getAscent)",
                    "returns": [
                        {
                            "desc": "The ascent of the Font in pixels.",
                            "name": "ascent",
                            "rawdesc": "The ascent of the Font in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1474,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getAscent()\n  -> ascent: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1474,
                    23
                ],
                "name": "getAscent",
                "rawdesc": "\nGets the ascent of the Font.\n\nThe ascent spans the distance between the baseline and the top of the glyph that reaches farthest from the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getAscent)",
                "start": [
                    1474,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the baseline of the Font.\n\nMost scripts share the notion of a baseline: an imaginary horizontal line on which characters rest. In some scripts, parts of glyphs lie below the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getBaseline)\n\n@*return* `baseline` — The baseline of the Font in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1485,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1485,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the baseline of the Font.\n\nMost scripts share the notion of a baseline: an imaginary horizontal line on which characters rest. In some scripts, parts of glyphs lie below the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getBaseline)\n\n@*return* `baseline` — The baseline of the Font in pixels.",
                    "finish": [
                        1485,
                        31
                    ],
                    "rawdesc": "\nGets the baseline of the Font.\n\nMost scripts share the notion of a baseline: an imaginary horizontal line on which characters rest. In some scripts, parts of glyphs lie below the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getBaseline)",
                    "returns": [
                        {
                            "desc": "The baseline of the Font in pixels.",
                            "name": "baseline",
                            "rawdesc": "The baseline of the Font in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1485,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getBaseline()\n  -> baseline: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1485,
                    25
                ],
                "name": "getBaseline",
                "rawdesc": "\nGets the baseline of the Font.\n\nMost scripts share the notion of a baseline: an imaginary horizontal line on which characters rest. In some scripts, parts of glyphs lie below the baseline.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getBaseline)",
                "start": [
                    1485,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor of the Font.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the font's glyphs have twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a font with a DPI scale factor of 1.\n\nThe font size of TrueType fonts is scaled internally by the font's specified DPI scale factor. By default, LÖVE uses the screen's DPI scale factor when creating TrueType fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Font.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1498,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1498,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the DPI scale factor of the Font.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the font's glyphs have twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a font with a DPI scale factor of 1.\n\nThe font size of TrueType fonts is scaled internally by the font's specified DPI scale factor. By default, LÖVE uses the screen's DPI scale factor when creating TrueType fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Font.",
                    "finish": [
                        1498,
                        31
                    ],
                    "rawdesc": "\nGets the DPI scale factor of the Font.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the font's glyphs have twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a font with a DPI scale factor of 1.\n\nThe font size of TrueType fonts is scaled internally by the font's specified DPI scale factor. By default, LÖVE uses the screen's DPI scale factor when creating TrueType fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDPIScale)",
                    "returns": [
                        {
                            "desc": "The DPI scale factor of the Font.",
                            "name": "dpiscale",
                            "rawdesc": "The DPI scale factor of the Font.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1498,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getDPIScale()\n  -> dpiscale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1498,
                    25
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor of the Font.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the font's glyphs have twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a font with a DPI scale factor of 1.\n\nThe font size of TrueType fonts is scaled internally by the font's specified DPI scale factor. By default, LÖVE uses the screen's DPI scale factor when creating TrueType fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDPIScale)",
                "start": [
                    1498,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the descent of the Font.\n\nThe descent spans the distance between the baseline and the lowest descending glyph in a typeface.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDescent)\n\n@*return* `descent` — The descent of the Font in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1509,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1509,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the descent of the Font.\n\nThe descent spans the distance between the baseline and the lowest descending glyph in a typeface.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDescent)\n\n@*return* `descent` — The descent of the Font in pixels.",
                    "finish": [
                        1509,
                        30
                    ],
                    "rawdesc": "\nGets the descent of the Font.\n\nThe descent spans the distance between the baseline and the lowest descending glyph in a typeface.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDescent)",
                    "returns": [
                        {
                            "desc": "The descent of the Font in pixels.",
                            "name": "descent",
                            "rawdesc": "The descent of the Font in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1509,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getDescent()\n  -> descent: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1509,
                    24
                ],
                "name": "getDescent",
                "rawdesc": "\nGets the descent of the Font.\n\nThe descent spans the distance between the baseline and the lowest descending glyph in a typeface.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getDescent)",
                "start": [
                    1509,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getFilter)\n\n@*return* `min` — Filter mode used when minifying the font.\n\n@*return* `mag` — Filter mode used when magnifying the font.\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1520,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1520,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getFilter)\n\n@*return* `min` — Filter mode used when minifying the font.\n\n@*return* `mag` — Filter mode used when magnifying the font.\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        1520,
                        29
                    ],
                    "rawdesc": "\nGets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "Filter mode used when minifying the font.",
                            "name": "min",
                            "rawdesc": "Filter mode used when minifying the font.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode used when magnifying the font.",
                            "name": "mag",
                            "rawdesc": "Filter mode used when magnifying the font.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1520,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1520,
                    23
                ],
                "name": "getFilter",
                "rawdesc": "\nGets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    1520,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the Font.\n\nThe height of the font is the size including any spacing; the height which it will need.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getHeight)\n\n@*return* `height` — The height of the Font in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1531,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1531,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the height of the Font.\n\nThe height of the font is the size including any spacing; the height which it will need.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getHeight)\n\n@*return* `height` — The height of the Font in pixels.",
                    "finish": [
                        1531,
                        29
                    ],
                    "rawdesc": "\nGets the height of the Font.\n\nThe height of the font is the size including any spacing; the height which it will need.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Font in pixels.",
                            "name": "height",
                            "rawdesc": "The height of the Font in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1531,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1531,
                    23
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the Font.\n\nThe height of the font is the size including any spacing; the height which it will need.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getHeight)",
                "start": [
                    1531,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the kerning between two characters in the Font.\n\nKerning is normally handled automatically in love.graphics.print, Text objects, Font:getWidth, Font:getWrap, etc. This function is useful when stitching text together manually.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getKerning)\n\n\n---\n\n@*param* `leftchar` — The left character.\n\n@*param* `rightchar` — The right character.\n\n@*return* `kerning` — The kerning amount to add to the spacing between the two characters. May be negative.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1545,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1545,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "The left character.",
                            "finish": [
                                1545,
                                33
                            ],
                            "name": "leftchar",
                            "rawdesc": "The left character.",
                            "start": [
                                1545,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The right character.",
                            "finish": [
                                1545,
                                44
                            ],
                            "name": "rightchar",
                            "rawdesc": "The right character.",
                            "start": [
                                1545,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the kerning between two characters in the Font.\n\nKerning is normally handled automatically in love.graphics.print, Text objects, Font:getWidth, Font:getWrap, etc. This function is useful when stitching text together manually.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getKerning)\n\n\n---\n\n@*param* `leftchar` — The left character.\n\n@*param* `rightchar` — The right character.\n\n@*return* `kerning` — The kerning amount to add to the spacing between the two characters. May be negative.",
                    "finish": [
                        1545,
                        49
                    ],
                    "rawdesc": "\nGets the kerning between two characters in the Font.\n\nKerning is normally handled automatically in love.graphics.print, Text objects, Font:getWidth, Font:getWrap, etc. This function is useful when stitching text together manually.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getKerning)",
                    "returns": [
                        {
                            "desc": "The kerning amount to add to the spacing between the two characters. May be negative.",
                            "name": "kerning",
                            "rawdesc": "The kerning amount to add to the spacing between the two characters. May be negative.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1545,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getKerning(leftchar: string, rightchar: string)\n  -> kerning: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1545,
                    24
                ],
                "name": "getKerning",
                "rawdesc": "\nGets the kerning between two characters in the Font.\n\nKerning is normally handled automatically in love.graphics.print, Text objects, Font:getWidth, Font:getWrap, etc. This function is useful when stitching text together manually.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getKerning)",
                "start": [
                    1545,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the line height.\n\nThis will be the value previously set by Font:setLineHeight, or 1.0 by default.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getLineHeight)\n\n@*return* `height` — The current line height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1556,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1556,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nGets the line height.\n\nThis will be the value previously set by Font:setLineHeight, or 1.0 by default.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getLineHeight)\n\n@*return* `height` — The current line height.",
                    "finish": [
                        1556,
                        33
                    ],
                    "rawdesc": "\nGets the line height.\n\nThis will be the value previously set by Font:setLineHeight, or 1.0 by default.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getLineHeight)",
                    "returns": [
                        {
                            "desc": "The current line height.",
                            "name": "height",
                            "rawdesc": "The current line height.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1556,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getLineHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1556,
                    27
                ],
                "name": "getLineHeight",
                "rawdesc": "\nGets the line height.\n\nThis will be the value previously set by Font:setLineHeight, or 1.0 by default.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getLineHeight)",
                "start": [
                    1556,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDetermines the maximum width (accounting for newlines) taken by the given string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWidth)\n\n@*param* `text` — A string or number.\n\n@*return* `width` — The width of the text.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1566,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1566,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "A string or number.",
                            "finish": [
                                1566,
                                27
                            ],
                            "name": "text",
                            "rawdesc": "A string or number.",
                            "start": [
                                1566,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nDetermines the maximum width (accounting for newlines) taken by the given string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWidth)\n\n@*param* `text` — A string or number.\n\n@*return* `width` — The width of the text.",
                    "finish": [
                        1566,
                        32
                    ],
                    "rawdesc": "\nDetermines the maximum width (accounting for newlines) taken by the given string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the text.",
                            "name": "width",
                            "rawdesc": "The width of the text.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1566,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getWidth(text: string|number)\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1566,
                    22
                ],
                "name": "getWidth",
                "rawdesc": "\nDetermines the maximum width (accounting for newlines) taken by the given string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWidth)",
                "start": [
                    1566,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets formatting information for text, given a wrap limit.\n\nThis function accounts for newlines correctly (i.e. '\\n').\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWrap)\n\n@*param* `text` — The text that will be wrapped.\n\n@*param* `wraplimit` — The maximum width in pixels of each line that ''text'' is allowed before wrapping.\n\n@*return* `width` — The maximum width of the wrapped text.\n\n@*return* `wrappedtext` — A sequence containing each line of text that was wrapped.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1580,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1580,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "The text that will be wrapped.",
                            "finish": [
                                1580,
                                26
                            ],
                            "name": "text",
                            "rawdesc": "The text that will be wrapped.",
                            "start": [
                                1580,
                                22
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The maximum width in pixels of each line that ''text'' is allowed before wrapping.",
                            "finish": [
                                1580,
                                37
                            ],
                            "name": "wraplimit",
                            "rawdesc": "The maximum width in pixels of each line that ''text'' is allowed before wrapping.",
                            "start": [
                                1580,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets formatting information for text, given a wrap limit.\n\nThis function accounts for newlines correctly (i.e. '\\n').\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWrap)\n\n@*param* `text` — The text that will be wrapped.\n\n@*param* `wraplimit` — The maximum width in pixels of each line that ''text'' is allowed before wrapping.\n\n@*return* `width` — The maximum width of the wrapped text.\n\n@*return* `wrappedtext` — A sequence containing each line of text that was wrapped.",
                    "finish": [
                        1580,
                        42
                    ],
                    "rawdesc": "\nGets formatting information for text, given a wrap limit.\n\nThis function accounts for newlines correctly (i.e. '\\n').\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWrap)",
                    "returns": [
                        {
                            "desc": "The maximum width of the wrapped text.",
                            "name": "width",
                            "rawdesc": "The maximum width of the wrapped text.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "A sequence containing each line of text that was wrapped.",
                            "name": "wrappedtext",
                            "rawdesc": "A sequence containing each line of text that was wrapped.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        1580,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:getWrap(text: string, wraplimit: number)\n  -> width: number\n  2. wrappedtext: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1580,
                    21
                ],
                "name": "getWrap",
                "rawdesc": "\nGets formatting information for text, given a wrap limit.\n\nThis function accounts for newlines correctly (i.e. '\\n').\n\n\n[Open in Browser](https://love2d.org/wiki/Font:getWrap)",
                "start": [
                    1580,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Font can render a character or string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:hasGlyphs)\n\n\n---\n\n@*param* `text` — A UTF-8 encoded unicode string.\n\n@*return* `hasglyph` — Whether the font can render all the UTF-8 characters in the string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1592,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1592,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "A UTF-8 encoded unicode string.",
                            "finish": [
                                1592,
                                28
                            ],
                            "name": "text",
                            "rawdesc": "A UTF-8 encoded unicode string.",
                            "start": [
                                1592,
                                24
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets whether the Font can render a character or string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:hasGlyphs)\n\n\n---\n\n@*param* `text` — A UTF-8 encoded unicode string.\n\n@*return* `hasglyph` — Whether the font can render all the UTF-8 characters in the string.",
                    "finish": [
                        1592,
                        33
                    ],
                    "rawdesc": "\nGets whether the Font can render a character or string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:hasGlyphs)",
                    "returns": [
                        {
                            "desc": "Whether the font can render all the UTF-8 characters in the string.",
                            "name": "hasglyph",
                            "rawdesc": "Whether the font can render all the UTF-8 characters in the string.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1592,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:hasGlyphs(text: string)\n  -> hasglyph: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1592,
                    23
                ],
                "name": "hasGlyphs",
                "rawdesc": "\nGets whether the Font can render a character or string.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:hasGlyphs)",
                "start": [
                    1592,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the fallback fonts. When the Font doesn't contain a glyph, it will substitute the glyph from the next subsequent fallback Fonts. This is akin to setting a 'font stack' in Cascading Style Sheets (CSS).\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFallbacks)\n\n@*param* `fallbackfont1` — The first fallback Font to use.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1602,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1602,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "The first fallback Font to use.",
                            "finish": [
                                1602,
                                40
                            ],
                            "name": "fallbackfont1",
                            "rawdesc": "The first fallback Font to use.",
                            "start": [
                                1602,
                                27
                            ],
                            "type": "local",
                            "view": "love.Font"
                        },
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1602,
                                45
                            ],
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1602,
                                42
                            ],
                            "type": "...",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nSets the fallback fonts. When the Font doesn't contain a glyph, it will substitute the glyph from the next subsequent fallback Fonts. This is akin to setting a 'font stack' in Cascading Style Sheets (CSS).\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFallbacks)\n\n@*param* `fallbackfont1` — The first fallback Font to use.",
                    "finish": [
                        1602,
                        50
                    ],
                    "rawdesc": "\nSets the fallback fonts. When the Font doesn't contain a glyph, it will substitute the glyph from the next subsequent fallback Fonts. This is akin to setting a 'font stack' in Cascading Style Sheets (CSS).\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFallbacks)",
                    "start": [
                        1602,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:setFallbacks(fallbackfont1: love.Font, ...love.Font)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1602,
                    26
                ],
                "name": "setFallbacks",
                "rawdesc": "\nSets the fallback fonts. When the Font doesn't contain a glyph, it will substitute the glyph from the next subsequent fallback Fonts. This is akin to setting a 'font stack' in Cascading Style Sheets (CSS).\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFallbacks)",
                "start": [
                    1602,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFilter)\n\n@*param* `min` — How to scale a font down.\n\n@*param* `mag` — How to scale a font up.\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1613,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1613,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "How to scale a font down.",
                            "finish": [
                                1613,
                                27
                            ],
                            "name": "min",
                            "rawdesc": "How to scale a font down.",
                            "start": [
                                1613,
                                24
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "How to scale a font up.",
                            "finish": [
                                1613,
                                32
                            ],
                            "name": "mag",
                            "rawdesc": "How to scale a font up.",
                            "start": [
                                1613,
                                29
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "finish": [
                                1613,
                                44
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "start": [
                                1613,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFilter)\n\n@*param* `min` — How to scale a font down.\n\n@*param* `mag` — How to scale a font up.\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        1613,
                        49
                    ],
                    "rawdesc": "\nSets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        1613,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:setFilter(min: \"linear\"|\"nearest\", mag: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1613,
                    23
                ],
                "name": "setFilter",
                "rawdesc": "\nSets the filter mode for a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    1613,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line height.\n\nWhen rendering the font in lines the actual height will be determined by the line height multiplied by the height of the font. The default is 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setLineHeight)\n\n@*param* `height` — The new line height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1624,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDefines the shape of characters that can be drawn onto the screen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1624,
                                8
                            ],
                            "type": "self",
                            "view": "love.Font"
                        },
                        {
                            "desc": "The new line height.",
                            "finish": [
                                1624,
                                34
                            ],
                            "name": "height",
                            "rawdesc": "The new line height.",
                            "start": [
                                1624,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the line height.\n\nWhen rendering the font in lines the actual height will be determined by the line height multiplied by the height of the font. The default is 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setLineHeight)\n\n@*param* `height` — The new line height.",
                    "finish": [
                        1624,
                        39
                    ],
                    "rawdesc": "\nSets the line height.\n\nWhen rendering the font in lines the actual height will be determined by the line height multiplied by the height of the font. The default is 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setLineHeight)",
                    "start": [
                        1624,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Font:setLineHeight(height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1624,
                    27
                ],
                "name": "setLineHeight",
                "rawdesc": "\nSets the line height.\n\nWhen rendering the font in lines the actual height will be determined by the line height multiplied by the height of the font. The default is 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/Font:setLineHeight)",
                "start": [
                    1624,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Font",
        "type": "type",
        "view": "love.Font"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            1830,
                            40
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            1830,
                            30
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1830,
                            53
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1830,
                            42
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1830,
                    53
                ],
                "rawdesc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1830,
                    10
                ],
                "type": "doc.class",
                "view": "love.FrictionJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxForce)\n\n@*return* `force` — Maximum force in Newtons.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1840,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1840,
                                8
                            ],
                            "type": "self",
                            "view": "love.FrictionJoint"
                        }
                    ],
                    "desc": "\nGets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxForce)\n\n@*return* `force` — Maximum force in Newtons.",
                    "finish": [
                        1840,
                        40
                    ],
                    "rawdesc": "\nGets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxForce)",
                    "returns": [
                        {
                            "desc": "Maximum force in Newtons.",
                            "name": "force",
                            "rawdesc": "Maximum force in Newtons.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1840,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.FrictionJoint:getMaxForce()\n  -> force: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1840,
                    34
                ],
                "name": "getMaxForce",
                "rawdesc": "\nGets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxForce)",
                "start": [
                    1840,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxTorque)\n\n@*return* `torque` — Maximum torque in Newton-meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1849,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1849,
                                8
                            ],
                            "type": "self",
                            "view": "love.FrictionJoint"
                        }
                    ],
                    "desc": "\nGets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxTorque)\n\n@*return* `torque` — Maximum torque in Newton-meters.",
                    "finish": [
                        1849,
                        41
                    ],
                    "rawdesc": "\nGets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxTorque)",
                    "returns": [
                        {
                            "desc": "Maximum torque in Newton-meters.",
                            "name": "torque",
                            "rawdesc": "Maximum torque in Newton-meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1849,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.FrictionJoint:getMaxTorque()\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1849,
                    35
                ],
                "name": "getMaxTorque",
                "rawdesc": "\nGets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:getMaxTorque)",
                "start": [
                    1849,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxForce)\n\n@*param* `maxForce` — Max force in Newtons.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1858,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1858,
                                8
                            ],
                            "type": "self",
                            "view": "love.FrictionJoint"
                        },
                        {
                            "desc": "Max force in Newtons.",
                            "finish": [
                                1858,
                                43
                            ],
                            "name": "maxForce",
                            "rawdesc": "Max force in Newtons.",
                            "start": [
                                1858,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxForce)\n\n@*param* `maxForce` — Max force in Newtons.",
                    "finish": [
                        1858,
                        48
                    ],
                    "rawdesc": "\nSets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxForce)",
                    "start": [
                        1858,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.FrictionJoint:setMaxForce(maxForce: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1858,
                    34
                ],
                "name": "setMaxForce",
                "rawdesc": "\nSets the maximum friction force in Newtons.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxForce)",
                "start": [
                    1858,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxTorque)\n\n@*param* `torque` — Maximum torque in Newton-meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1867,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1867,
                                8
                            ],
                            "type": "self",
                            "view": "love.FrictionJoint"
                        },
                        {
                            "desc": "Maximum torque in Newton-meters.",
                            "finish": [
                                1867,
                                42
                            ],
                            "name": "torque",
                            "rawdesc": "Maximum torque in Newton-meters.",
                            "start": [
                                1867,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxTorque)\n\n@*param* `torque` — Maximum torque in Newton-meters.",
                    "finish": [
                        1867,
                        47
                    ],
                    "rawdesc": "\nSets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxTorque)",
                    "start": [
                        1867,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.FrictionJoint:setMaxTorque(torque: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1867,
                    35
                ],
                "name": "setMaxTorque",
                "rawdesc": "\nSets the maximum friction torque in Newton-meters.\n\n\n[Open in Browser](https://love2d.org/wiki/FrictionJoint:setMaxTorque)",
                "start": [
                    1867,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.FrictionJoint",
        "type": "type",
        "view": "love.FrictionJoint"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nlove.FullscreenType:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                "finish": [
                    452,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nlove.FullscreenType:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                "start": [
                    440,
                    10
                ],
                "type": "doc.alias",
                "view": "\"desktop\"|\"exclusive\"|\"normal\""
            }
        ],
        "fields": [],
        "name": "love.FullscreenType",
        "type": "type",
        "view": "love.FullscreenType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \nlove.GamepadAxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n```",
                "finish": [
                    331,
                    19
                ],
                "rawdesc": "```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \nlove.GamepadAxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n```",
                "start": [
                    307,
                    10
                ],
                "type": "doc.alias",
                "view": "\"leftx\"|\"lefty\"|\"rightx\"|\"righty\"|\"triggerleft\"...(+1)"
            }
        ],
        "fields": [],
        "name": "love.GamepadAxis",
        "type": "type",
        "view": "love.GamepadAxis"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nlove.GamepadButton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n```",
                "finish": [
                    399,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nlove.GamepadButton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n```",
                "start": [
                    339,
                    10
                ],
                "type": "doc.alias",
                "view": "\"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10)"
            }
        ],
        "fields": [],
        "name": "love.GamepadButton",
        "type": "type",
        "view": "love.GamepadButton"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            1875,
                            36
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            1875,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1875,
                            49
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1875,
                            38
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1875,
                    49
                ],
                "rawdesc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1875,
                    10
                ],
                "type": "doc.class",
                "view": "love.GearJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the Joints connected by this GearJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getJoints)\n\n@*return* `joint1` — The first connected Joint.\n\n@*return* `joint2` — The second connected Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1886,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1886,
                                8
                            ],
                            "type": "self",
                            "view": "love.GearJoint"
                        }
                    ],
                    "desc": "\nGet the Joints connected by this GearJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getJoints)\n\n@*return* `joint1` — The first connected Joint.\n\n@*return* `joint2` — The second connected Joint.",
                    "finish": [
                        1886,
                        34
                    ],
                    "rawdesc": "\nGet the Joints connected by this GearJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getJoints)",
                    "returns": [
                        {
                            "desc": "The first connected Joint.",
                            "name": "joint1",
                            "rawdesc": "The first connected Joint.",
                            "type": "function.return",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The second connected Joint.",
                            "name": "joint2",
                            "rawdesc": "The second connected Joint.",
                            "type": "function.return",
                            "view": "love.Joint"
                        }
                    ],
                    "start": [
                        1886,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GearJoint:getJoints()\n  -> joint1: love.Joint\n  2. joint2: love.Joint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1886,
                    28
                ],
                "name": "getJoints",
                "rawdesc": "\nGet the Joints connected by this GearJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getJoints)",
                "start": [
                    1886,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getRatio)\n\n@*return* `ratio` — The ratio of the joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1895,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1895,
                                8
                            ],
                            "type": "self",
                            "view": "love.GearJoint"
                        }
                    ],
                    "desc": "\nGet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getRatio)\n\n@*return* `ratio` — The ratio of the joint.",
                    "finish": [
                        1895,
                        33
                    ],
                    "rawdesc": "\nGet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getRatio)",
                    "returns": [
                        {
                            "desc": "The ratio of the joint.",
                            "name": "ratio",
                            "rawdesc": "The ratio of the joint.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1895,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GearJoint:getRatio()\n  -> ratio: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1895,
                    27
                ],
                "name": "getRatio",
                "rawdesc": "\nGet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:getRatio)",
                "start": [
                    1895,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:setRatio)\n\n@*param* `ratio` — The new ratio of the joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1904,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nKeeps bodies together in such a way that they act like gears.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1904,
                                8
                            ],
                            "type": "self",
                            "view": "love.GearJoint"
                        },
                        {
                            "desc": "The new ratio of the joint.",
                            "finish": [
                                1904,
                                33
                            ],
                            "name": "ratio",
                            "rawdesc": "The new ratio of the joint.",
                            "start": [
                                1904,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:setRatio)\n\n@*param* `ratio` — The new ratio of the joint.",
                    "finish": [
                        1904,
                        38
                    ],
                    "rawdesc": "\nSet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:setRatio)",
                    "start": [
                        1904,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GearJoint:setRatio(ratio: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1904,
                    27
                ],
                "name": "setRatio",
                "rawdesc": "\nSet the ratio of a gear joint.\n\n\n[Open in Browser](https://love2d.org/wiki/GearJoint:setRatio)",
                "start": [
                    1904,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.GearJoint",
        "type": "type",
        "view": "love.GearJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            83,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            83,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            83,
                            48
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            83,
                            37
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    83,
                    48
                ],
                "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "start": [
                    83,
                    10
                ],
                "type": "doc.class",
                "view": "love.GlyphData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph advance.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getAdvance)\n\n@*return* `advance` — Glyph advance.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                93,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                93,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph advance.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getAdvance)\n\n@*return* `advance` — Glyph advance.",
                    "finish": [
                        93,
                        35
                    ],
                    "rawdesc": "\nGets glyph advance.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getAdvance)",
                    "returns": [
                        {
                            "desc": "Glyph advance.",
                            "name": "advance",
                            "rawdesc": "Glyph advance.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getAdvance()\n  -> advance: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    93,
                    29
                ],
                "name": "getAdvance",
                "rawdesc": "\nGets glyph advance.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getAdvance)",
                "start": [
                    93,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph bearing.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBearing)\n\n@*return* `bx` — Glyph bearing X.\n\n@*return* `by` — Glyph bearing Y.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                103,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                103,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph bearing.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBearing)\n\n@*return* `bx` — Glyph bearing X.\n\n@*return* `by` — Glyph bearing Y.",
                    "finish": [
                        103,
                        35
                    ],
                    "rawdesc": "\nGets glyph bearing.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBearing)",
                    "returns": [
                        {
                            "desc": "Glyph bearing X.",
                            "name": "bx",
                            "rawdesc": "Glyph bearing X.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Glyph bearing Y.",
                            "name": "by",
                            "rawdesc": "Glyph bearing Y.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        103,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getBearing()\n  -> bx: number\n  2. by: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    103,
                    29
                ],
                "name": "getBearing",
                "rawdesc": "\nGets glyph bearing.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBearing)",
                "start": [
                    103,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph bounding box.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBoundingBox)\n\n@*return* `x` — Glyph position x.\n\n@*return* `y` — Glyph position y.\n\n@*return* `width` — Glyph width.\n\n@*return* `height` — Glyph height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                115,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                115,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph bounding box.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBoundingBox)\n\n@*return* `x` — Glyph position x.\n\n@*return* `y` — Glyph position y.\n\n@*return* `width` — Glyph width.\n\n@*return* `height` — Glyph height.",
                    "finish": [
                        115,
                        39
                    ],
                    "rawdesc": "\nGets glyph bounding box.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBoundingBox)",
                    "returns": [
                        {
                            "desc": "Glyph position x.",
                            "name": "x",
                            "rawdesc": "Glyph position x.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Glyph position y.",
                            "name": "y",
                            "rawdesc": "Glyph position y.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Glyph width.",
                            "name": "width",
                            "rawdesc": "Glyph width.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Glyph height.",
                            "name": "height",
                            "rawdesc": "Glyph height.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        115,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getBoundingBox()\n  -> x: number\n  2. y: number\n  3. width: number\n  4. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    115,
                    33
                ],
                "name": "getBoundingBox",
                "rawdesc": "\nGets glyph bounding box.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getBoundingBox)",
                "start": [
                    115,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph dimensions.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getDimensions)\n\n@*return* `width` — Glyph width.\n\n@*return* `height` — Glyph height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                125,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                125,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph dimensions.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getDimensions)\n\n@*return* `width` — Glyph width.\n\n@*return* `height` — Glyph height.",
                    "finish": [
                        125,
                        38
                    ],
                    "rawdesc": "\nGets glyph dimensions.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getDimensions)",
                    "returns": [
                        {
                            "desc": "Glyph width.",
                            "name": "width",
                            "rawdesc": "Glyph width.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Glyph height.",
                            "name": "height",
                            "rawdesc": "Glyph height.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        125,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    125,
                    32
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets glyph dimensions.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getDimensions)",
                "start": [
                    125,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph pixel format.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getFormat)\n\n@*return* `format` — Glyph pixel format.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                134,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                134,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph pixel format.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getFormat)\n\n@*return* `format` — Glyph pixel format.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "finish": [
                        134,
                        34
                    ],
                    "rawdesc": "\nGets glyph pixel format.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "returns": [
                        {
                            "desc": "Glyph pixel format.",
                            "name": "format",
                            "rawdesc": "Glyph pixel format.",
                            "type": "function.return",
                            "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                        }
                    ],
                    "start": [
                        134,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getFormat()\n  -> format: \"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    134,
                    28
                ],
                "name": "getFormat",
                "rawdesc": "\nGets glyph pixel format.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    134,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph number.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyph)\n\n@*return* `glyph` — Glyph number.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                143,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                143,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph number.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyph)\n\n@*return* `glyph` — Glyph number.",
                    "finish": [
                        143,
                        33
                    ],
                    "rawdesc": "\nGets glyph number.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyph)",
                    "returns": [
                        {
                            "desc": "Glyph number.",
                            "name": "glyph",
                            "rawdesc": "Glyph number.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        143,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getGlyph()\n  -> glyph: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    143,
                    27
                ],
                "name": "getGlyph",
                "rawdesc": "\nGets glyph number.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyph)",
                "start": [
                    143,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph string.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyphString)\n\n@*return* `glyph` — Glyph string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                152,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                152,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph string.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyphString)\n\n@*return* `glyph` — Glyph string.",
                    "finish": [
                        152,
                        39
                    ],
                    "rawdesc": "\nGets glyph string.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyphString)",
                    "returns": [
                        {
                            "desc": "Glyph string.",
                            "name": "glyph",
                            "rawdesc": "Glyph string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        152,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getGlyphString()\n  -> glyph: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    152,
                    33
                ],
                "name": "getGlyphString",
                "rawdesc": "\nGets glyph string.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getGlyphString)",
                "start": [
                    152,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph height.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getHeight)\n\n@*return* `height` — Glyph height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                161,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                161,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph height.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getHeight)\n\n@*return* `height` — Glyph height.",
                    "finish": [
                        161,
                        34
                    ],
                    "rawdesc": "\nGets glyph height.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getHeight)",
                    "returns": [
                        {
                            "desc": "Glyph height.",
                            "name": "height",
                            "rawdesc": "Glyph height.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    161,
                    28
                ],
                "name": "getHeight",
                "rawdesc": "\nGets glyph height.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getHeight)",
                "start": [
                    161,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph width.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getWidth)\n\n@*return* `width` — Glyph width.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                170,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA GlyphData represents a drawable symbol of a font Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                170,
                                8
                            ],
                            "type": "self",
                            "view": "love.GlyphData"
                        }
                    ],
                    "desc": "\nGets glyph width.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getWidth)\n\n@*return* `width` — Glyph width.",
                    "finish": [
                        170,
                        33
                    ],
                    "rawdesc": "\nGets glyph width.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getWidth)",
                    "returns": [
                        {
                            "desc": "Glyph width.",
                            "name": "width",
                            "rawdesc": "Glyph width.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.GlyphData:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    170,
                    27
                ],
                "name": "getWidth",
                "rawdesc": "\nGets glyph width.\n\n\n[Open in Browser](https://love2d.org/wiki/GlyphData:getWidth)",
                "start": [
                    170,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.GlyphData",
        "type": "type",
        "view": "love.GlyphData"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Graphics features that can be checked for with love.graphics.getSupported.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GraphicsFeature)\n-- \nlove.GraphicsFeature:\n    | \"clampzero\" -- Whether the \"clampzero\" WrapMode is supported.\n    | \"lighten\" -- Whether the \"lighten\" and \"darken\" BlendModes are supported.\n    | \"multicanvasformats\" -- Whether multiple formats can be used in the same love.graphics.setCanvas call.\n    | \"glsl3\" -- Whether GLSL 3 Shaders can be used.\n    | \"instancing\" -- Whether mesh instancing is supported.\n    | \"fullnpot\" -- Whether textures with non-power-of-two dimensions can use mipmapping and the 'repeat' WrapMode.\n    | \"pixelshaderhighp\" -- Whether pixel shaders can use \"highp\" 32 bit floating point numbers (as opposed to just 16 bit or lower precision).\n    | \"shaderderivatives\" -- Whether shaders can use the dFdx, dFdy, and fwidth functions for computing derivatives.\n```",
                "finish": [
                    3670,
                    24
                ],
                "rawdesc": "```lua\n-- \n-- Graphics features that can be checked for with love.graphics.getSupported.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GraphicsFeature)\n-- \nlove.GraphicsFeature:\n    | \"clampzero\" -- Whether the \"clampzero\" WrapMode is supported.\n    | \"lighten\" -- Whether the \"lighten\" and \"darken\" BlendModes are supported.\n    | \"multicanvasformats\" -- Whether multiple formats can be used in the same love.graphics.setCanvas call.\n    | \"glsl3\" -- Whether GLSL 3 Shaders can be used.\n    | \"instancing\" -- Whether mesh instancing is supported.\n    | \"fullnpot\" -- Whether textures with non-power-of-two dimensions can use mipmapping and the 'repeat' WrapMode.\n    | \"pixelshaderhighp\" -- Whether pixel shaders can use \"highp\" 32 bit floating point numbers (as opposed to just 16 bit or lower precision).\n    | \"shaderderivatives\" -- Whether shaders can use the dFdx, dFdy, and fwidth functions for computing derivatives.\n```",
                "start": [
                    3638,
                    10
                ],
                "type": "doc.alias",
                "view": "\"clampzero\"|\"fullnpot\"|\"glsl3\"|\"instancing\"|\"lighten\"...(+3)"
            }
        ],
        "fields": [],
        "name": "love.GraphicsFeature",
        "type": "type",
        "view": "love.GraphicsFeature"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of system-dependent graphics limits checked for using love.graphics.getSystemLimits.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GraphicsLimit)\n-- \nlove.GraphicsLimit:\n    | \"pointsize\" -- The maximum size of points.\n    | \"texturesize\" -- The maximum width or height of Images and Canvases.\n    | \"multicanvas\" -- The maximum number of simultaneously active canvases (via love.graphics.setCanvas.)\n    | \"canvasmsaa\" -- The maximum number of antialiasing samples for a Canvas.\n    | \"texturelayers\" -- The maximum number of layers in an Array texture.\n    | \"volumetexturesize\" -- The maximum width, height, or depth of a Volume texture.\n    | \"cubetexturesize\" -- The maximum width or height of a Cubemap texture.\n    | \"anisotropy\" -- The maximum amount of anisotropic filtering. Texture:setMipmapFilter internally clamps the given anisotropy value to the system's limit.\n```",
                "finish": [
                    3710,
                    17
                ],
                "rawdesc": "```lua\n-- \n-- Types of system-dependent graphics limits checked for using love.graphics.getSystemLimits.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GraphicsLimit)\n-- \nlove.GraphicsLimit:\n    | \"pointsize\" -- The maximum size of points.\n    | \"texturesize\" -- The maximum width or height of Images and Canvases.\n    | \"multicanvas\" -- The maximum number of simultaneously active canvases (via love.graphics.setCanvas.)\n    | \"canvasmsaa\" -- The maximum number of antialiasing samples for a Canvas.\n    | \"texturelayers\" -- The maximum number of layers in an Array texture.\n    | \"volumetexturesize\" -- The maximum width, height, or depth of a Volume texture.\n    | \"cubetexturesize\" -- The maximum width or height of a Cubemap texture.\n    | \"anisotropy\" -- The maximum amount of anisotropic filtering. Texture:setMipmapFilter internally clamps the given anisotropy value to the system's limit.\n```",
                "start": [
                    3678,
                    10
                ],
                "type": "doc.alias",
                "view": "\"anisotropy\"|\"canvasmsaa\"|\"cubetexturesize\"|\"multicanvas\"|\"pointsize\"...(+3)"
            }
        ],
        "fields": [],
        "name": "love.GraphicsLimit",
        "type": "type",
        "view": "love.GraphicsLimit"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nlove.HashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                "finish": [
                    263,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nlove.HashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                "start": [
                    239,
                    10
                ],
                "type": "doc.alias",
                "view": "\"md5\"|\"sha1\"|\"sha224\"|\"sha256\"|\"sha384\"...(+1)"
            }
        ],
        "fields": [],
        "name": "love.HashFunction",
        "type": "type",
        "view": "love.HashFunction"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nlove.HintingMode:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                "finish": [
                    280,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nlove.HintingMode:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                "start": [
                    264,
                    10
                ],
                "type": "doc.alias",
                "view": "\"light\"|\"mono\"|\"none\"|\"normal\""
            }
        ],
        "fields": [],
        "name": "love.HintingMode",
        "type": "type",
        "view": "love.HintingMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            1632,
                            34
                        ],
                        "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            1632,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Texture"
                    },
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            1632,
                            49
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            1632,
                            36
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1632,
                            62
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1632,
                            51
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1632,
                    62
                ],
                "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    1632,
                    10
                ],
                "type": "doc.class",
                "view": "love.Image",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3026,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3026,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Texture.",
                    "finish": [
                        3026,
                        34
                    ],
                    "rawdesc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)",
                    "returns": [
                        {
                            "desc": "The DPI scale factor of the Texture.",
                            "name": "dpiscale",
                            "rawdesc": "The DPI scale factor of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3026,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDPIScale()\n  -> dpiscale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3026,
                    28
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)",
                "start": [
                    3026,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)\n\n@*return* `depth` — The depth of the volume Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3035,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3035,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)\n\n@*return* `depth` — The depth of the volume Texture.",
                    "finish": [
                        3035,
                        31
                    ],
                    "rawdesc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)",
                    "returns": [
                        {
                            "desc": "The depth of the volume Texture.",
                            "name": "depth",
                            "rawdesc": "The depth of the volume Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3035,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDepth()\n  -> depth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3035,
                    25
                ],
                "name": "getDepth",
                "rawdesc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)",
                "start": [
                    3035,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n@*return* `compare` — The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3046,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3046,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n@*return* `compare` — The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        3046,
                        41
                    ],
                    "rawdesc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.",
                            "name": "compare",
                            "rawdesc": "The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        }
                    ],
                    "start": [
                        3046,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDepthSampleMode()\n  -> compare: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3046,
                    35
                ],
                "name": "getDepthSampleMode",
                "rawdesc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3046,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)\n\n@*return* `width` — The width of the Texture.\n\n@*return* `height` — The height of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3056,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3056,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)\n\n@*return* `width` — The width of the Texture.\n\n@*return* `height` — The height of the Texture.",
                    "finish": [
                        3056,
                        36
                    ],
                    "rawdesc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Texture.",
                            "name": "width",
                            "rawdesc": "The width of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Texture.",
                            "name": "height",
                            "rawdesc": "The height of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3056,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3056,
                    30
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)",
                "start": [
                    3056,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n@*return* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `mag` — Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3067,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3067,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n@*return* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `mag` — Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3067,
                        32
                    ],
                    "rawdesc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "name": "min",
                            "rawdesc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "name": "mag",
                            "rawdesc": "Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3067,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3067,
                    26
                ],
                "name": "getFilter",
                "rawdesc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3067,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n@*return* `format` — The pixel format the Texture was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3076,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3076,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n@*return* `format` — The pixel format the Texture was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "finish": [
                        3076,
                        32
                    ],
                    "rawdesc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "returns": [
                        {
                            "desc": "The pixel format the Texture was created with.",
                            "name": "format",
                            "rawdesc": "The pixel format the Texture was created with.",
                            "type": "function.return",
                            "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                        }
                    ],
                    "start": [
                        3076,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getFormat()\n  -> format: \"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3076,
                    26
                ],
                "name": "getFormat",
                "rawdesc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    3076,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)\n\n@*return* `height` — The height of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3085,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3085,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)\n\n@*return* `height` — The height of the Texture.",
                    "finish": [
                        3085,
                        32
                    ],
                    "rawdesc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Texture.",
                            "name": "height",
                            "rawdesc": "The height of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3085,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3085,
                    26
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)",
                "start": [
                    3085,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)\n\n@*return* `layers` — The number of layers in the Array Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3094,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3094,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)\n\n@*return* `layers` — The number of layers in the Array Texture.",
                    "finish": [
                        3094,
                        36
                    ],
                    "rawdesc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)",
                    "returns": [
                        {
                            "desc": "The number of layers in the Array Texture.",
                            "name": "layers",
                            "rawdesc": "The number of layers in the Array Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3094,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getLayerCount()\n  -> layers: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3094,
                    30
                ],
                "name": "getLayerCount",
                "rawdesc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)",
                "start": [
                    3094,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmaps in the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3103,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3103,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmaps in the Texture.",
                    "finish": [
                        3103,
                        37
                    ],
                    "rawdesc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)",
                    "returns": [
                        {
                            "desc": "The number of mipmaps in the Texture.",
                            "name": "mipmaps",
                            "rawdesc": "The number of mipmaps in the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3103,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getMipmapCount()\n  -> mipmaps: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3103,
                    31
                ],
                "name": "getMipmapCount",
                "rawdesc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)",
                "start": [
                    3103,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n@*return* `mode` — The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.\n\n@*return* `sharpness` — Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3113,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3113,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n@*return* `mode` — The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.\n\n@*return* `sharpness` — Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3113,
                        38
                    ],
                    "rawdesc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.",
                            "name": "mode",
                            "rawdesc": "The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.",
                            "name": "sharpness",
                            "rawdesc": "Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3113,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getMipmapFilter()\n  -> mode: \"linear\"|\"nearest\"\n  2. sharpness: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3113,
                    32
                ],
                "name": "getMipmapFilter",
                "rawdesc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3113,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3125,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3125,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                    "finish": [
                        3125,
                        41
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Texture, in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Texture, in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3125,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelDimensions()\n  -> pixelwidth: number\n  2. pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3125,
                    35
                ],
                "name": "getPixelDimensions",
                "rawdesc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)",
                "start": [
                    3125,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3136,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3136,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                    "finish": [
                        3136,
                        37
                    ],
                    "rawdesc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Texture, in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3136,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelHeight()\n  -> pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3136,
                    31
                ],
                "name": "getPixelHeight",
                "rawdesc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)",
                "start": [
                    3136,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.",
                    "finish": [
                        3147,
                        36
                    ],
                    "rawdesc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Texture, in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelWidth()\n  -> pixelwidth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3147,
                    30
                ],
                "name": "getPixelWidth",
                "rawdesc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)",
                "start": [
                    3147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n@*return* `texturetype` — The type of the Texture.\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3156,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3156,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n@*return* `texturetype` — The type of the Texture.\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                    "finish": [
                        3156,
                        37
                    ],
                    "rawdesc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Texture.",
                            "name": "texturetype",
                            "rawdesc": "The type of the Texture.",
                            "type": "function.return",
                            "view": "\"2d\"|\"array\"|\"cube\"|\"volume\""
                        }
                    ],
                    "start": [
                        3156,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getTextureType()\n  -> texturetype: \"2d\"|\"array\"|\"cube\"|\"volume\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3156,
                    31
                ],
                "name": "getTextureType",
                "rawdesc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "start": [
                    3156,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)\n\n@*return* `width` — The width of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3165,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3165,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)\n\n@*return* `width` — The width of the Texture.",
                    "finish": [
                        3165,
                        31
                    ],
                    "rawdesc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Texture.",
                            "name": "width",
                            "rawdesc": "The width of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3165,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3165,
                    25
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)",
                "start": [
                    3165,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n@*return* `horiz` — Horizontal wrapping mode of the texture.\n\n@*return* `vert` — Vertical wrapping mode of the texture.\n\n@*return* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3178,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3178,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n@*return* `horiz` — Horizontal wrapping mode of the texture.\n\n@*return* `vert` — Vertical wrapping mode of the texture.\n\n@*return* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "finish": [
                        3178,
                        30
                    ],
                    "rawdesc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "returns": [
                        {
                            "desc": "Horizontal wrapping mode of the texture.",
                            "name": "horiz",
                            "rawdesc": "Horizontal wrapping mode of the texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Vertical wrapping mode of the texture.",
                            "name": "vert",
                            "rawdesc": "Vertical wrapping mode of the texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Wrapping mode for the z-axis of a Volume texture.",
                            "name": "depth",
                            "rawdesc": "Wrapping mode for the z-axis of a Volume texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        }
                    ],
                    "start": [
                        3178,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getWrap()\n  -> horiz: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\"\n  2. vert: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\"\n  3. depth: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3178,
                    24
                ],
                "name": "getWrap",
                "rawdesc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3178,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Image was created from CompressedData.\n\nCompressed images take up less space in VRAM, and drawing a compressed image will generally be more efficient than drawing one created from raw pixel data.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isCompressed)\n\n@*return* `compressed` — Whether the Image is stored as a compressed texture on the GPU.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1644,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1644,
                                8
                            ],
                            "type": "self",
                            "view": "love.Image"
                        }
                    ],
                    "desc": "\nGets whether the Image was created from CompressedData.\n\nCompressed images take up less space in VRAM, and drawing a compressed image will generally be more efficient than drawing one created from raw pixel data.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isCompressed)\n\n@*return* `compressed` — Whether the Image is stored as a compressed texture on the GPU.",
                    "finish": [
                        1644,
                        33
                    ],
                    "rawdesc": "\nGets whether the Image was created from CompressedData.\n\nCompressed images take up less space in VRAM, and drawing a compressed image will generally be more efficient than drawing one created from raw pixel data.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isCompressed)",
                    "returns": [
                        {
                            "desc": "Whether the Image is stored as a compressed texture on the GPU.",
                            "name": "compressed",
                            "rawdesc": "Whether the Image is stored as a compressed texture on the GPU.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1644,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Image:isCompressed()\n  -> compressed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1644,
                    27
                ],
                "name": "isCompressed",
                "rawdesc": "\nGets whether the Image was created from CompressedData.\n\nCompressed images take up less space in VRAM, and drawing a compressed image will generally be more efficient than drawing one created from raw pixel data.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isCompressed)",
                "start": [
                    1644,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Image was created with the linear (non-gamma corrected) flag set to true.\n\nThis method always returns false when gamma-correct rendering is not enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isFormatLinear)\n\n@*return* `linear` — Whether the Image's internal pixel format is linear (not gamma corrected), when gamma-correct rendering is enabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1655,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1655,
                                8
                            ],
                            "type": "self",
                            "view": "love.Image"
                        }
                    ],
                    "desc": "\nGets whether the Image was created with the linear (non-gamma corrected) flag set to true.\n\nThis method always returns false when gamma-correct rendering is not enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isFormatLinear)\n\n@*return* `linear` — Whether the Image's internal pixel format is linear (not gamma corrected), when gamma-correct rendering is enabled.",
                    "finish": [
                        1655,
                        35
                    ],
                    "rawdesc": "\nGets whether the Image was created with the linear (non-gamma corrected) flag set to true.\n\nThis method always returns false when gamma-correct rendering is not enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isFormatLinear)",
                    "returns": [
                        {
                            "desc": "Whether the Image's internal pixel format is linear (not gamma corrected), when gamma-correct rendering is enabled.",
                            "name": "linear",
                            "rawdesc": "Whether the Image's internal pixel format is linear (not gamma corrected), when gamma-correct rendering is enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1655,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Image:isFormatLinear()\n  -> linear: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1655,
                    29
                ],
                "name": "isFormatLinear",
                "rawdesc": "\nGets whether the Image was created with the linear (non-gamma corrected) flag set to true.\n\nThis method always returns false when gamma-correct rendering is not enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:isFormatLinear)",
                "start": [
                    1655,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)\n\n@*return* `readable` — Whether the Texture is readable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3191,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3191,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)\n\n@*return* `readable` — Whether the Texture is readable.",
                    "finish": [
                        3191,
                        33
                    ],
                    "rawdesc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)",
                    "returns": [
                        {
                            "desc": "Whether the Texture is readable.",
                            "name": "readable",
                            "rawdesc": "Whether the Texture is readable.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3191,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:isReadable()\n  -> readable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3191,
                    27
                ],
                "name": "isReadable",
                "rawdesc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)",
                "start": [
                    3191,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplace the contents of an Image.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:replacePixels)\n\n@*param* `data` — The new ImageData to replace the contents with.\n\n@*param* `slice` — Which cubemap face, array index, or volume layer to replace, if applicable.\n\n@*param* `mipmap` — The mimap level to replace, if the Image has mipmaps.\n\n@*param* `x` — The x-offset in pixels from the top-left of the image to replace. The given ImageData's width plus this value must not be greater than the pixel width of the Image's specified mipmap level.\n\n@*param* `y` — The y-offset in pixels from the top-left of the image to replace. The given ImageData's height plus this value must not be greater than the pixel height of the Image's specified mipmap level.\n\n@*param* `reloadmipmaps` — Whether to generate new mipmaps after replacing the Image's pixels. True by default if the Image was created with automatically generated mipmaps, false by default otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1669,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable image type.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1669,
                                8
                            ],
                            "type": "self",
                            "view": "love.Image"
                        },
                        {
                            "desc": "The new ImageData to replace the contents with.",
                            "finish": [
                                1669,
                                33
                            ],
                            "name": "data",
                            "rawdesc": "The new ImageData to replace the contents with.",
                            "start": [
                                1669,
                                29
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "Which cubemap face, array index, or volume layer to replace, if applicable.",
                            "finish": [
                                1669,
                                40
                            ],
                            "name": "slice",
                            "rawdesc": "Which cubemap face, array index, or volume layer to replace, if applicable.",
                            "start": [
                                1669,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The mimap level to replace, if the Image has mipmaps.",
                            "finish": [
                                1669,
                                48
                            ],
                            "name": "mipmap",
                            "rawdesc": "The mimap level to replace, if the Image has mipmaps.",
                            "start": [
                                1669,
                                42
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The x-offset in pixels from the top-left of the image to replace. The given ImageData's width plus this value must not be greater than the pixel width of the Image's specified mipmap level.",
                            "finish": [
                                1669,
                                51
                            ],
                            "name": "x",
                            "rawdesc": "The x-offset in pixels from the top-left of the image to replace. The given ImageData's width plus this value must not be greater than the pixel width of the Image's specified mipmap level.",
                            "start": [
                                1669,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y-offset in pixels from the top-left of the image to replace. The given ImageData's height plus this value must not be greater than the pixel height of the Image's specified mipmap level.",
                            "finish": [
                                1669,
                                54
                            ],
                            "name": "y",
                            "rawdesc": "The y-offset in pixels from the top-left of the image to replace. The given ImageData's height plus this value must not be greater than the pixel height of the Image's specified mipmap level.",
                            "start": [
                                1669,
                                53
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Whether to generate new mipmaps after replacing the Image's pixels. True by default if the Image was created with automatically generated mipmaps, false by default otherwise.",
                            "finish": [
                                1669,
                                69
                            ],
                            "name": "reloadmipmaps",
                            "rawdesc": "Whether to generate new mipmaps after replacing the Image's pixels. True by default if the Image was created with automatically generated mipmaps, false by default otherwise.",
                            "start": [
                                1669,
                                56
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nReplace the contents of an Image.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:replacePixels)\n\n@*param* `data` — The new ImageData to replace the contents with.\n\n@*param* `slice` — Which cubemap face, array index, or volume layer to replace, if applicable.\n\n@*param* `mipmap` — The mimap level to replace, if the Image has mipmaps.\n\n@*param* `x` — The x-offset in pixels from the top-left of the image to replace. The given ImageData's width plus this value must not be greater than the pixel width of the Image's specified mipmap level.\n\n@*param* `y` — The y-offset in pixels from the top-left of the image to replace. The given ImageData's height plus this value must not be greater than the pixel height of the Image's specified mipmap level.\n\n@*param* `reloadmipmaps` — Whether to generate new mipmaps after replacing the Image's pixels. True by default if the Image was created with automatically generated mipmaps, false by default otherwise.",
                    "finish": [
                        1669,
                        74
                    ],
                    "rawdesc": "\nReplace the contents of an Image.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:replacePixels)",
                    "start": [
                        1669,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Image:replacePixels(data: love.ImageData, slice?: number, mipmap?: number, x?: number, y?: number, reloadmipmaps?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1669,
                    28
                ],
                "name": "replacePixels",
                "rawdesc": "\nReplace the contents of an Image.\n\n\n[Open in Browser](https://love2d.org/wiki/Image:replacePixels)",
                "start": [
                    1669,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n@*param* `compare` — The comparison mode used when sampling from this texture in a shader.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3204,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3204,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The comparison mode used when sampling from this texture in a shader.",
                            "finish": [
                                3204,
                                43
                            ],
                            "name": "compare",
                            "rawdesc": "The comparison mode used when sampling from this texture in a shader.",
                            "start": [
                                3204,
                                36
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        }
                    ],
                    "desc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n@*param* `compare` — The comparison mode used when sampling from this texture in a shader.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        3204,
                        48
                    ],
                    "rawdesc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        3204,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setDepthSampleMode(compare: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3204,
                    35
                ],
                "name": "setDepthSampleMode",
                "rawdesc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3204,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n@*param* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*param* `mag` — Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering to use.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3215,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3215,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "finish": [
                                3215,
                                30
                            ],
                            "name": "min",
                            "rawdesc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "start": [
                                3215,
                                27
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).",
                            "finish": [
                                3215,
                                35
                            ],
                            "name": "mag",
                            "rawdesc": "Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).",
                            "start": [
                                3215,
                                32
                            ],
                            "type": "local",
                            "view": "(\"linear\"|\"nearest\")?"
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering to use.",
                            "finish": [
                                3215,
                                47
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering to use.",
                            "start": [
                                3215,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n@*param* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*param* `mag` — Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering to use.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3215,
                        52
                    ],
                    "rawdesc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3215,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setFilter(min: \"linear\"|\"nearest\", mag?: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3215,
                    26
                ],
                "name": "setFilter",
                "rawdesc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3215,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n@*param* `filtermode` — The filter mode to use in between mipmap levels. 'nearest' will often give better performance.\n\n@*param* `sharpness` — A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3232,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3232,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The filter mode to use in between mipmap levels. 'nearest' will often give better performance.",
                            "finish": [
                                3232,
                                43
                            ],
                            "name": "filtermode",
                            "rawdesc": "The filter mode to use in between mipmap levels. 'nearest' will often give better performance.",
                            "start": [
                                3232,
                                33
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.",
                            "finish": [
                                3232,
                                54
                            ],
                            "name": "sharpness",
                            "rawdesc": "A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.",
                            "start": [
                                3232,
                                45
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n@*param* `filtermode` — The filter mode to use in between mipmap levels. 'nearest' will often give better performance.\n\n@*param* `sharpness` — A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3232,
                        59
                    ],
                    "rawdesc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3232,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setMipmapFilter(filtermode: \"linear\"|\"nearest\", sharpness?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3232,
                    32
                ],
                "name": "setMipmapFilter",
                "rawdesc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3232,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n@*param* `horiz` — Horizontal wrapping mode of the texture.\n\n@*param* `vert` — Vertical wrapping mode of the texture.\n\n@*param* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3247,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3247,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "Horizontal wrapping mode of the texture.",
                            "finish": [
                                3247,
                                30
                            ],
                            "name": "horiz",
                            "rawdesc": "Horizontal wrapping mode of the texture.",
                            "start": [
                                3247,
                                25
                            ],
                            "type": "local",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Vertical wrapping mode of the texture.",
                            "finish": [
                                3247,
                                36
                            ],
                            "name": "vert",
                            "rawdesc": "Vertical wrapping mode of the texture.",
                            "start": [
                                3247,
                                32
                            ],
                            "type": "local",
                            "view": "(\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")?"
                        },
                        {
                            "desc": "Wrapping mode for the z-axis of a Volume texture.",
                            "finish": [
                                3247,
                                43
                            ],
                            "name": "depth",
                            "rawdesc": "Wrapping mode for the z-axis of a Volume texture.",
                            "start": [
                                3247,
                                38
                            ],
                            "type": "local",
                            "view": "(\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")?"
                        }
                    ],
                    "desc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n@*param* `horiz` — Horizontal wrapping mode of the texture.\n\n@*param* `vert` — Vertical wrapping mode of the texture.\n\n@*param* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "finish": [
                        3247,
                        48
                    ],
                    "rawdesc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "start": [
                        3247,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setWrap(horiz: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\", vert?: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\", depth?: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3247,
                    24
                ],
                "name": "setWrap",
                "rawdesc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3247,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Image",
        "type": "type",
        "view": "love.Image"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            118,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            118,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            118,
                            48
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            118,
                            37
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    118,
                    48
                ],
                "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "start": [
                    118,
                    10
                ],
                "type": "doc.class",
                "view": "love.ImageData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEncodes the ImageData and optionally writes it to the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:encode)\n\n\n---\n\n@*param* `format` — The format to encode the image as.\n\n@*param* `filename` — The filename to write the file to. If nil, no file will be written but the FileData will still be returned.\n\n@*return* `filedata` — The encoded image as a new FileData object.\n\n```lua\n-- \n-- Encoded image formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ImageFormat)\n-- \nformat:\n    | \"tga\" -- Targa image format.\n    | \"png\" -- PNG image format.\n    | \"jpg\" -- JPG image format.\n    | \"bmp\" -- BMP image format.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                132,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                132,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The format to encode the image as.",
                            "finish": [
                                132,
                                32
                            ],
                            "name": "format",
                            "rawdesc": "The format to encode the image as.",
                            "start": [
                                132,
                                26
                            ],
                            "type": "local",
                            "view": "\"bmp\"|\"jpg\"|\"png\"|\"tga\""
                        },
                        {
                            "desc": "The filename to write the file to. If nil, no file will be written but the FileData will still be returned.",
                            "finish": [
                                132,
                                42
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to write the file to. If nil, no file will be written but the FileData will still be returned.",
                            "start": [
                                132,
                                34
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nEncodes the ImageData and optionally writes it to the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:encode)\n\n\n---\n\n@*param* `format` — The format to encode the image as.\n\n@*param* `filename` — The filename to write the file to. If nil, no file will be written but the FileData will still be returned.\n\n@*return* `filedata` — The encoded image as a new FileData object.\n\n```lua\n-- \n-- Encoded image formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ImageFormat)\n-- \nformat:\n    | \"tga\" -- Targa image format.\n    | \"png\" -- PNG image format.\n    | \"jpg\" -- JPG image format.\n    | \"bmp\" -- BMP image format.\n```",
                    "finish": [
                        132,
                        47
                    ],
                    "rawdesc": "\nEncodes the ImageData and optionally writes it to the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:encode)\n\n\n---\n\n```lua\n-- \n-- Encoded image formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ImageFormat)\n-- \nformat:\n    | \"tga\" -- Targa image format.\n    | \"png\" -- PNG image format.\n    | \"jpg\" -- JPG image format.\n    | \"bmp\" -- BMP image format.\n```",
                    "returns": [
                        {
                            "desc": "The encoded image as a new FileData object.",
                            "name": "filedata",
                            "rawdesc": "The encoded image as a new FileData object.",
                            "type": "function.return",
                            "view": "love.FileData"
                        }
                    ],
                    "start": [
                        132,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:encode(format: \"bmp\"|\"jpg\"|\"png\"|\"tga\", filename?: string)\n  -> filedata: love.FileData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    132,
                    25
                ],
                "name": "encode",
                "rawdesc": "\nEncodes the ImageData and optionally writes it to the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:encode)\n\n\n---\n\n```lua\n-- \n-- Encoded image formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ImageFormat)\n-- \nformat:\n    | \"tga\" -- Targa image format.\n    | \"png\" -- PNG image format.\n    | \"jpg\" -- JPG image format.\n    | \"bmp\" -- BMP image format.\n```",
                "start": [
                    132,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getDimensions)\n\n@*return* `width` — The width of the ImageData in pixels.\n\n@*return* `height` — The height of the ImageData in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                142,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                142,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        }
                    ],
                    "desc": "\nGets the width and height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getDimensions)\n\n@*return* `width` — The width of the ImageData in pixels.\n\n@*return* `height` — The height of the ImageData in pixels.",
                    "finish": [
                        142,
                        38
                    ],
                    "rawdesc": "\nGets the width and height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the ImageData in pixels.",
                            "name": "width",
                            "rawdesc": "The width of the ImageData in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the ImageData in pixels.",
                            "name": "height",
                            "rawdesc": "The height of the ImageData in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        142,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    142,
                    32
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getDimensions)",
                "start": [
                    142,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the pixel format of the ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getFormat)\n\n@*return* `format` — The pixel format the ImageData was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                252,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                252,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        }
                    ],
                    "desc": "\nGets the pixel format of the ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getFormat)\n\n@*return* `format` — The pixel format the ImageData was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "finish": [
                        252,
                        34
                    ],
                    "rawdesc": "\nGets the pixel format of the ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "returns": [
                        {
                            "desc": "The pixel format the ImageData was created with.",
                            "name": "format",
                            "rawdesc": "The pixel format the ImageData was created with.",
                            "type": "function.return",
                            "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                        }
                    ],
                    "start": [
                        252,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:getFormat()\n  -> format: \"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    252,
                    28
                ],
                "name": "getFormat",
                "rawdesc": "\nGets the pixel format of the ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    252,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getHeight)\n\n@*return* `height` — The height of the ImageData in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                151,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                151,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        }
                    ],
                    "desc": "\nGets the height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getHeight)\n\n@*return* `height` — The height of the ImageData in pixels.",
                    "finish": [
                        151,
                        34
                    ],
                    "rawdesc": "\nGets the height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the ImageData in pixels.",
                            "name": "height",
                            "rawdesc": "The height of the ImageData in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        151,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    151,
                    28
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getHeight)",
                "start": [
                    151,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1. Non-integer values are floored.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getPixel)\n\n@*param* `x` — The position of the pixel on the x-axis.\n\n@*param* `y` — The position of the pixel on the y-axis.\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                169,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                169,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The position of the pixel on the x-axis.",
                            "finish": [
                                169,
                                29
                            ],
                            "name": "x",
                            "rawdesc": "The position of the pixel on the x-axis.",
                            "start": [
                                169,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the pixel on the y-axis.",
                            "finish": [
                                169,
                                32
                            ],
                            "name": "y",
                            "rawdesc": "The position of the pixel on the y-axis.",
                            "start": [
                                169,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1. Non-integer values are floored.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getPixel)\n\n@*param* `x` — The position of the pixel on the x-axis.\n\n@*param* `y` — The position of the pixel on the y-axis.\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                    "finish": [
                        169,
                        37
                    ],
                    "rawdesc": "\nGets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1. Non-integer values are floored.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getPixel)",
                    "returns": [
                        {
                            "desc": "The red component (0-1).",
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        169,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:getPixel(x: number, y: number)\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    169,
                    27
                ],
                "name": "getPixel",
                "rawdesc": "\nGets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1. Non-integer values are floored.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getPixel)",
                "start": [
                    169,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getWidth)\n\n@*return* `width` — The width of the ImageData in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                178,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                178,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        }
                    ],
                    "desc": "\nGets the width of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getWidth)\n\n@*return* `width` — The width of the ImageData in pixels.",
                    "finish": [
                        178,
                        33
                    ],
                    "rawdesc": "\nGets the width of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the ImageData in pixels.",
                            "name": "width",
                            "rawdesc": "The width of the ImageData in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        178,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    178,
                    27
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the ImageData in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:getWidth)",
                "start": [
                    178,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTransform an image by applying a function to every pixel.\n\nThis function is a higher-order function. It takes another function as a parameter, and calls it once for each pixel in the ImageData.\n\nThe passed function is called with six parameters for each pixel in turn. The parameters are numbers that represent the x and y coordinates of the pixel and its red, green, blue and alpha values. The function should return the new red, green, blue, and alpha values for that pixel.\n\nfunction pixelFunction(x, y, r, g, b, a)\n\n    -- template for defining your own pixel mapping function\n\n    -- perform computations giving the new values for r, g, b and a\n\n    -- ...\n\n    return r, g, b, a\n\nend\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:mapPixel)\n\n@*param* `pixelFunction` — Function to apply to every pixel.\n\n@*param* `x` — The x-axis of the top-left corner of the area within the ImageData to apply the function to.\n\n@*param* `y` — The y-axis of the top-left corner of the area within the ImageData to apply the function to.\n\n@*param* `width` — The width of the area within the ImageData to apply the function to.\n\n@*param* `height` — The height of the area within the ImageData to apply the function to.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                209,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                209,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "Function to apply to every pixel.",
                            "finish": [
                                209,
                                41
                            ],
                            "name": "pixelFunction",
                            "rawdesc": "Function to apply to every pixel.",
                            "start": [
                                209,
                                28
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "desc": "The x-axis of the top-left corner of the area within the ImageData to apply the function to.",
                            "finish": [
                                209,
                                44
                            ],
                            "name": "x",
                            "rawdesc": "The x-axis of the top-left corner of the area within the ImageData to apply the function to.",
                            "start": [
                                209,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y-axis of the top-left corner of the area within the ImageData to apply the function to.",
                            "finish": [
                                209,
                                47
                            ],
                            "name": "y",
                            "rawdesc": "The y-axis of the top-left corner of the area within the ImageData to apply the function to.",
                            "start": [
                                209,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The width of the area within the ImageData to apply the function to.",
                            "finish": [
                                209,
                                54
                            ],
                            "name": "width",
                            "rawdesc": "The width of the area within the ImageData to apply the function to.",
                            "start": [
                                209,
                                49
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The height of the area within the ImageData to apply the function to.",
                            "finish": [
                                209,
                                62
                            ],
                            "name": "height",
                            "rawdesc": "The height of the area within the ImageData to apply the function to.",
                            "start": [
                                209,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nTransform an image by applying a function to every pixel.\n\nThis function is a higher-order function. It takes another function as a parameter, and calls it once for each pixel in the ImageData.\n\nThe passed function is called with six parameters for each pixel in turn. The parameters are numbers that represent the x and y coordinates of the pixel and its red, green, blue and alpha values. The function should return the new red, green, blue, and alpha values for that pixel.\n\nfunction pixelFunction(x, y, r, g, b, a)\n\n    -- template for defining your own pixel mapping function\n\n    -- perform computations giving the new values for r, g, b and a\n\n    -- ...\n\n    return r, g, b, a\n\nend\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:mapPixel)\n\n@*param* `pixelFunction` — Function to apply to every pixel.\n\n@*param* `x` — The x-axis of the top-left corner of the area within the ImageData to apply the function to.\n\n@*param* `y` — The y-axis of the top-left corner of the area within the ImageData to apply the function to.\n\n@*param* `width` — The width of the area within the ImageData to apply the function to.\n\n@*param* `height` — The height of the area within the ImageData to apply the function to.",
                    "finish": [
                        209,
                        67
                    ],
                    "rawdesc": "\nTransform an image by applying a function to every pixel.\n\nThis function is a higher-order function. It takes another function as a parameter, and calls it once for each pixel in the ImageData.\n\nThe passed function is called with six parameters for each pixel in turn. The parameters are numbers that represent the x and y coordinates of the pixel and its red, green, blue and alpha values. The function should return the new red, green, blue, and alpha values for that pixel.\n\nfunction pixelFunction(x, y, r, g, b, a)\n\n    -- template for defining your own pixel mapping function\n\n    -- perform computations giving the new values for r, g, b and a\n\n    -- ...\n\n    return r, g, b, a\n\nend\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:mapPixel)",
                    "start": [
                        209,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:mapPixel(pixelFunction: function, x?: number, y?: number, width?: number, height?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    209,
                    27
                ],
                "name": "mapPixel",
                "rawdesc": "\nTransform an image by applying a function to every pixel.\n\nThis function is a higher-order function. It takes another function as a parameter, and calls it once for each pixel in the ImageData.\n\nThe passed function is called with six parameters for each pixel in turn. The parameters are numbers that represent the x and y coordinates of the pixel and its red, green, blue and alpha values. The function should return the new red, green, blue, and alpha values for that pixel.\n\nfunction pixelFunction(x, y, r, g, b, a)\n\n    -- template for defining your own pixel mapping function\n\n    -- perform computations giving the new values for r, g, b and a\n\n    -- ...\n\n    return r, g, b, a\n\nend\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:mapPixel)",
                "start": [
                    209,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPaste into ImageData from another source ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:paste)\n\n@*param* `source` — Source ImageData from which to copy.\n\n@*param* `dx` — Destination top-left position on x-axis.\n\n@*param* `dy` — Destination top-left position on y-axis.\n\n@*param* `sx` — Source top-left position on x-axis.\n\n@*param* `sy` — Source top-left position on y-axis.\n\n@*param* `sw` — Source width.\n\n@*param* `sh` — Source height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                224,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                224,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "Source ImageData from which to copy.",
                            "finish": [
                                224,
                                31
                            ],
                            "name": "source",
                            "rawdesc": "Source ImageData from which to copy.",
                            "start": [
                                224,
                                25
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "Destination top-left position on x-axis.",
                            "finish": [
                                224,
                                35
                            ],
                            "name": "dx",
                            "rawdesc": "Destination top-left position on x-axis.",
                            "start": [
                                224,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Destination top-left position on y-axis.",
                            "finish": [
                                224,
                                39
                            ],
                            "name": "dy",
                            "rawdesc": "Destination top-left position on y-axis.",
                            "start": [
                                224,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Source top-left position on x-axis.",
                            "finish": [
                                224,
                                43
                            ],
                            "name": "sx",
                            "rawdesc": "Source top-left position on x-axis.",
                            "start": [
                                224,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Source top-left position on y-axis.",
                            "finish": [
                                224,
                                47
                            ],
                            "name": "sy",
                            "rawdesc": "Source top-left position on y-axis.",
                            "start": [
                                224,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Source width.",
                            "finish": [
                                224,
                                51
                            ],
                            "name": "sw",
                            "rawdesc": "Source width.",
                            "start": [
                                224,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Source height.",
                            "finish": [
                                224,
                                55
                            ],
                            "name": "sh",
                            "rawdesc": "Source height.",
                            "start": [
                                224,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nPaste into ImageData from another source ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:paste)\n\n@*param* `source` — Source ImageData from which to copy.\n\n@*param* `dx` — Destination top-left position on x-axis.\n\n@*param* `dy` — Destination top-left position on y-axis.\n\n@*param* `sx` — Source top-left position on x-axis.\n\n@*param* `sy` — Source top-left position on y-axis.\n\n@*param* `sw` — Source width.\n\n@*param* `sh` — Source height.",
                    "finish": [
                        224,
                        60
                    ],
                    "rawdesc": "\nPaste into ImageData from another source ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:paste)",
                    "start": [
                        224,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:paste(source: love.ImageData, dx: number, dy: number, sx: number, sy: number, sw: number, sh: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    224,
                    24
                ],
                "name": "paste",
                "rawdesc": "\nPaste into ImageData from another source ImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:paste)",
                "start": [
                    224,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:setPixel)\n\n\n---\n\n@*param* `x` — The position of the pixel on the x-axis.\n\n@*param* `y` — The position of the pixel on the y-axis.\n\n@*param* `r` — The red component (0-1).\n\n@*param* `g` — The green component (0-1).\n\n@*param* `b` — The blue component (0-1).\n\n@*param* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "finish": [
                                243,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRaw (decoded) image data.\n\nYou can't draw ImageData directly to screen. See Image for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                            "start": [
                                243,
                                8
                            ],
                            "type": "self",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The position of the pixel on the x-axis.",
                            "finish": [
                                243,
                                29
                            ],
                            "name": "x",
                            "rawdesc": "The position of the pixel on the x-axis.",
                            "start": [
                                243,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the pixel on the y-axis.",
                            "finish": [
                                243,
                                32
                            ],
                            "name": "y",
                            "rawdesc": "The position of the pixel on the y-axis.",
                            "start": [
                                243,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The red component (0-1).",
                            "finish": [
                                243,
                                35
                            ],
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "start": [
                                243,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "finish": [
                                243,
                                38
                            ],
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "start": [
                                243,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "finish": [
                                243,
                                41
                            ],
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "start": [
                                243,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "finish": [
                                243,
                                44
                            ],
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "start": [
                                243,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:setPixel)\n\n\n---\n\n@*param* `x` — The position of the pixel on the x-axis.\n\n@*param* `y` — The position of the pixel on the y-axis.\n\n@*param* `r` — The red component (0-1).\n\n@*param* `g` — The green component (0-1).\n\n@*param* `b` — The blue component (0-1).\n\n@*param* `a` — The alpha component (0-1).",
                    "finish": [
                        243,
                        49
                    ],
                    "rawdesc": "\nSets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:setPixel)",
                    "start": [
                        243,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ImageData:setPixel(x: number, y: number, r: number, g: number, b: number, a: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    243,
                    27
                ],
                "name": "setPixel",
                "rawdesc": "\nSets the color of a pixel at a specific position in the image.\n\nValid x and y values start at 0 and go up to image width and height minus 1.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ImageData:setPixel)",
                "start": [
                    243,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.ImageData",
        "type": "type",
        "view": "love.ImageData"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Encoded image formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ImageFormat)\n-- \nlove.ImageFormat:\n    | \"tga\" -- Targa image format.\n    | \"png\" -- PNG image format.\n    | \"jpg\" -- JPG image format.\n    | \"bmp\" -- BMP image format.\n```",
                "finish": [
                    430,
                    10
                ],
                "rawdesc": "```lua\n-- \n-- Encoded image formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ImageFormat)\n-- \nlove.ImageFormat:\n    | \"tga\" -- Targa image format.\n    | \"png\" -- PNG image format.\n    | \"jpg\" -- JPG image format.\n    | \"bmp\" -- BMP image format.\n```",
                "start": [
                    414,
                    10
                ],
                "type": "doc.alias",
                "view": "\"bmp\"|\"jpg\"|\"png\"|\"tga\""
            }
        ],
        "fields": [],
        "name": "love.ImageFormat",
        "type": "type",
        "view": "love.ImageFormat"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Vertex map datatype for Data variant of Mesh:setVertexMap.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/IndexDataType)\n-- \nlove.IndexDataType:\n    | \"uint16\" -- The vertex map is array of unsigned word (16-bit).\n    | \"uint32\" -- The vertex map is array of unsigned dword (32-bit).\n```",
                "finish": [
                    3726,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Vertex map datatype for Data variant of Mesh:setVertexMap.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/IndexDataType)\n-- \nlove.IndexDataType:\n    | \"uint16\" -- The vertex map is array of unsigned word (16-bit).\n    | \"uint32\" -- The vertex map is array of unsigned dword (32-bit).\n```",
                "start": [
                    3718,
                    10
                ],
                "type": "doc.alias",
                "view": "\"uint16\"|\"uint32\""
            }
        ],
        "fields": [],
        "name": "love.IndexDataType",
        "type": "type",
        "view": "love.IndexDataType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1912,
                            33
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1912,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1912,
                    33
                ],
                "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    1912,
                    10
                ],
                "type": "doc.class",
                "view": "love.Joint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Joint",
        "type": "type",
        "view": "love.Joint"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \nlove.JointType:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "finish": [
                    3256,
                    11
                ],
                "rawdesc": "```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \nlove.JointType:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    3220,
                    10
                ],
                "type": "doc.alias",
                "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
            }
        ],
        "fields": [],
        "name": "love.JointType",
        "type": "type",
        "view": "love.JointType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            91,
                            36
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            91,
                            25
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    91,
                    36
                ],
                "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "start": [
                    91,
                    10
                ],
                "type": "doc.class",
                "view": "love.Joystick",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the direction of each axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxes)\n\n@*return* `axisDir1` — Direction of axis1.\n\n@*return* `axisDir2` — Direction of axis2.\n\n@*return* `axisDirN` — Direction of axisN.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                103,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                103,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the direction of each axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxes)\n\n@*return* `axisDir1` — Direction of axis1.\n\n@*return* `axisDir2` — Direction of axis2.\n\n@*return* `axisDirN` — Direction of axisN.",
                    "finish": [
                        103,
                        31
                    ],
                    "rawdesc": "\nGets the direction of each axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxes)",
                    "returns": [
                        {
                            "desc": "Direction of axis1.",
                            "name": "axisDir1",
                            "rawdesc": "Direction of axis1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Direction of axis2.",
                            "name": "axisDir2",
                            "rawdesc": "Direction of axis2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Direction of axisN.",
                            "name": "axisDirN",
                            "rawdesc": "Direction of axisN.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        103,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getAxes()\n  -> axisDir1: number\n  2. axisDir2: number\n  3. axisDirN: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    103,
                    25
                ],
                "name": "getAxes",
                "rawdesc": "\nGets the direction of each axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxes)",
                "start": [
                    103,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the direction of an axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxis)\n\n@*param* `axis` — The index of the axis to be checked.\n\n@*return* `direction` — Current value of the axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                113,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                113,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "The index of the axis to be checked.",
                            "finish": [
                                113,
                                30
                            ],
                            "name": "axis",
                            "rawdesc": "The index of the axis to be checked.",
                            "start": [
                                113,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets the direction of an axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxis)\n\n@*param* `axis` — The index of the axis to be checked.\n\n@*return* `direction` — Current value of the axis.",
                    "finish": [
                        113,
                        35
                    ],
                    "rawdesc": "\nGets the direction of an axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxis)",
                    "returns": [
                        {
                            "desc": "Current value of the axis.",
                            "name": "direction",
                            "rawdesc": "Current value of the axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        113,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getAxis(axis: number)\n  -> direction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    113,
                    25
                ],
                "name": "getAxis",
                "rawdesc": "\nGets the direction of an axis.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxis)",
                "start": [
                    113,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of axes on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxisCount)\n\n@*return* `axes` — The number of axes available.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                122,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                122,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the number of axes on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxisCount)\n\n@*return* `axes` — The number of axes available.",
                    "finish": [
                        122,
                        36
                    ],
                    "rawdesc": "\nGets the number of axes on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxisCount)",
                    "returns": [
                        {
                            "desc": "The number of axes available.",
                            "name": "axes",
                            "rawdesc": "The number of axes available.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        122,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getAxisCount()\n  -> axes: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    122,
                    30
                ],
                "name": "getAxisCount",
                "rawdesc": "\nGets the number of axes on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getAxisCount)",
                "start": [
                    122,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of buttons on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getButtonCount)\n\n@*return* `buttons` — The number of buttons available.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                131,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                131,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the number of buttons on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getButtonCount)\n\n@*return* `buttons` — The number of buttons available.",
                    "finish": [
                        131,
                        38
                    ],
                    "rawdesc": "\nGets the number of buttons on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getButtonCount)",
                    "returns": [
                        {
                            "desc": "The number of buttons available.",
                            "name": "buttons",
                            "rawdesc": "The number of buttons available.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getButtonCount()\n  -> buttons: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    131,
                    32
                ],
                "name": "getButtonCount",
                "rawdesc": "\nGets the number of buttons on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getButtonCount)",
                "start": [
                    131,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the USB vendor ID, product ID, and product version numbers of joystick which consistent across operating systems.\n\nCan be used to show different icons, etc. for different gamepads.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getDeviceInfo)\n\n@*return* `vendorID` — The USB vendor ID of the joystick.\n\n@*return* `productID` — The USB product ID of the joystick.\n\n@*return* `productVersion` — The product version of the joystick.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                144,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                144,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the USB vendor ID, product ID, and product version numbers of joystick which consistent across operating systems.\n\nCan be used to show different icons, etc. for different gamepads.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getDeviceInfo)\n\n@*return* `vendorID` — The USB vendor ID of the joystick.\n\n@*return* `productID` — The USB product ID of the joystick.\n\n@*return* `productVersion` — The product version of the joystick.",
                    "finish": [
                        144,
                        37
                    ],
                    "rawdesc": "\nGets the USB vendor ID, product ID, and product version numbers of joystick which consistent across operating systems.\n\nCan be used to show different icons, etc. for different gamepads.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getDeviceInfo)",
                    "returns": [
                        {
                            "desc": "The USB vendor ID of the joystick.",
                            "name": "vendorID",
                            "rawdesc": "The USB vendor ID of the joystick.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The USB product ID of the joystick.",
                            "name": "productID",
                            "rawdesc": "The USB product ID of the joystick.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The product version of the joystick.",
                            "name": "productVersion",
                            "rawdesc": "The product version of the joystick.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        144,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getDeviceInfo()\n  -> vendorID: number\n  2. productID: number\n  3. productVersion: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    144,
                    31
                ],
                "name": "getDeviceInfo",
                "rawdesc": "\nGets the USB vendor ID, product ID, and product version numbers of joystick which consistent across operating systems.\n\nCan be used to show different icons, etc. for different gamepads.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getDeviceInfo)",
                "start": [
                    144,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a stable GUID unique to the type of the physical joystick which does not change over time. For example, all Sony Dualshock 3 controllers in OS X have the same GUID. The value is platform-dependent.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGUID)\n\n@*return* `guid` — The Joystick type's OS-dependent unique identifier.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                153,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                153,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets a stable GUID unique to the type of the physical joystick which does not change over time. For example, all Sony Dualshock 3 controllers in OS X have the same GUID. The value is platform-dependent.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGUID)\n\n@*return* `guid` — The Joystick type's OS-dependent unique identifier.",
                    "finish": [
                        153,
                        31
                    ],
                    "rawdesc": "\nGets a stable GUID unique to the type of the physical joystick which does not change over time. For example, all Sony Dualshock 3 controllers in OS X have the same GUID. The value is platform-dependent.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGUID)",
                    "returns": [
                        {
                            "desc": "The Joystick type's OS-dependent unique identifier.",
                            "name": "guid",
                            "rawdesc": "The Joystick type's OS-dependent unique identifier.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        153,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getGUID()\n  -> guid: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    153,
                    25
                ],
                "name": "getGUID",
                "rawdesc": "\nGets a stable GUID unique to the type of the physical joystick which does not change over time. For example, all Sony Dualshock 3 controllers in OS X have the same GUID. The value is platform-dependent.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGUID)",
                "start": [
                    153,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the direction of a virtual gamepad axis. If the Joystick isn't recognized as a gamepad or isn't connected, this function will always return 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadAxis)\n\n@*param* `axis` — The virtual axis to be checked.\n\n@*return* `direction` — Current value of the axis.\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                163,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                163,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "The virtual axis to be checked.",
                            "finish": [
                                163,
                                37
                            ],
                            "name": "axis",
                            "rawdesc": "The virtual axis to be checked.",
                            "start": [
                                163,
                                33
                            ],
                            "type": "local",
                            "view": "\"leftx\"|\"lefty\"|\"rightx\"|\"righty\"|\"triggerleft\"...(+1)"
                        }
                    ],
                    "desc": "\nGets the direction of a virtual gamepad axis. If the Joystick isn't recognized as a gamepad or isn't connected, this function will always return 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadAxis)\n\n@*param* `axis` — The virtual axis to be checked.\n\n@*return* `direction` — Current value of the axis.\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n```",
                    "finish": [
                        163,
                        42
                    ],
                    "rawdesc": "\nGets the direction of a virtual gamepad axis. If the Joystick isn't recognized as a gamepad or isn't connected, this function will always return 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadAxis)\n\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n```",
                    "returns": [
                        {
                            "desc": "Current value of the axis.",
                            "name": "direction",
                            "rawdesc": "Current value of the axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getGamepadAxis(axis: \"leftx\"|\"lefty\"|\"rightx\"|\"righty\"|\"triggerleft\"...(+1))\n  -> direction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    163,
                    32
                ],
                "name": "getGamepadAxis",
                "rawdesc": "\nGets the direction of a virtual gamepad axis. If the Joystick isn't recognized as a gamepad or isn't connected, this function will always return 0.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadAxis)\n\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n```",
                "start": [
                    163,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the button, axis or hat that a virtual gamepad input is bound to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMapping)\n\n\n---\n\n@*param* `axis` — The virtual gamepad axis to get the binding for.\n\n@*return* `inputtype` — The type of input the virtual gamepad axis is bound to.\n\n@*return* `inputindex` — The index of the Joystick's button, axis or hat that the virtual gamepad axis is bound to.\n\n@*return* `hatdirection` — The direction of the hat, if the virtual gamepad axis is bound to a hat. nil otherwise.\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                176,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                176,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "The virtual gamepad axis to get the binding for.",
                            "finish": [
                                176,
                                40
                            ],
                            "name": "axis",
                            "rawdesc": "The virtual gamepad axis to get the binding for.",
                            "start": [
                                176,
                                36
                            ],
                            "type": "local",
                            "view": "\"leftx\"|\"lefty\"|\"rightx\"|\"righty\"|\"triggerleft\"...(+1)"
                        }
                    ],
                    "desc": "\nGets the button, axis or hat that a virtual gamepad input is bound to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMapping)\n\n\n---\n\n@*param* `axis` — The virtual gamepad axis to get the binding for.\n\n@*return* `inputtype` — The type of input the virtual gamepad axis is bound to.\n\n@*return* `inputindex` — The index of the Joystick's button, axis or hat that the virtual gamepad axis is bound to.\n\n@*return* `hatdirection` — The direction of the hat, if the virtual gamepad axis is bound to a hat. nil otherwise.\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "finish": [
                        176,
                        45
                    ],
                    "rawdesc": "\nGets the button, axis or hat that a virtual gamepad input is bound to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMapping)\n\n\n---\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "returns": [
                        {
                            "desc": "The type of input the virtual gamepad axis is bound to.",
                            "name": "inputtype",
                            "rawdesc": "The type of input the virtual gamepad axis is bound to.",
                            "type": "function.return",
                            "view": "\"axis\"|\"button\"|\"hat\""
                        },
                        {
                            "desc": "The index of the Joystick's button, axis or hat that the virtual gamepad axis is bound to.",
                            "name": "inputindex",
                            "rawdesc": "The index of the Joystick's button, axis or hat that the virtual gamepad axis is bound to.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The direction of the hat, if the virtual gamepad axis is bound to a hat. nil otherwise.",
                            "name": "hatdirection",
                            "rawdesc": "The direction of the hat, if the virtual gamepad axis is bound to a hat. nil otherwise.",
                            "type": "function.return",
                            "view": "\"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4)"
                        }
                    ],
                    "start": [
                        176,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getGamepadMapping(axis: \"leftx\"|\"lefty\"|\"rightx\"|\"righty\"|\"triggerleft\"...(+1))\n  -> inputtype: \"axis\"|\"button\"|\"hat\"\n  2. inputindex: number\n  3. hatdirection: \"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    176,
                    35
                ],
                "name": "getGamepadMapping",
                "rawdesc": "\nGets the button, axis or hat that a virtual gamepad input is bound to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMapping)\n\n\n---\n\n```lua\n-- \n-- Virtual gamepad axes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadAxis)\n-- \naxis:\n    | \"leftx\" -- The x-axis of the left thumbstick.\n    | \"lefty\" -- The y-axis of the left thumbstick.\n    | \"rightx\" -- The x-axis of the right thumbstick.\n    | \"righty\" -- The y-axis of the right thumbstick.\n    | \"triggerleft\" -- Left analog trigger.\n    | \"triggerright\" -- Right analog trigger.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "start": [
                    176,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full gamepad mapping string of this Joystick, or nil if it's not recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMappingString)\n\n@*return* `mappingstring` — A string containing the Joystick's gamepad mappings, or nil if the Joystick is not recognized as a gamepad.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                187,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                187,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the full gamepad mapping string of this Joystick, or nil if it's not recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMappingString)\n\n@*return* `mappingstring` — A string containing the Joystick's gamepad mappings, or nil if the Joystick is not recognized as a gamepad.",
                    "finish": [
                        187,
                        47
                    ],
                    "rawdesc": "\nGets the full gamepad mapping string of this Joystick, or nil if it's not recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMappingString)",
                    "returns": [
                        {
                            "desc": "A string containing the Joystick's gamepad mappings, or nil if the Joystick is not recognized as a gamepad.",
                            "name": "mappingstring",
                            "rawdesc": "A string containing the Joystick's gamepad mappings, or nil if the Joystick is not recognized as a gamepad.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        187,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getGamepadMappingString()\n  -> mappingstring: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    187,
                    41
                ],
                "name": "getGamepadMappingString",
                "rawdesc": "\nGets the full gamepad mapping string of this Joystick, or nil if it's not recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getGamepadMappingString)",
                "start": [
                    187,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the direction of the Joystick's hat.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHat)\n\n@*param* `hat` — The index of the hat to be checked.\n\n@*return* `direction` — The direction the hat is pushed.\n\n```lua\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \ndirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                197,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                197,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "The index of the hat to be checked.",
                            "finish": [
                                197,
                                28
                            ],
                            "name": "hat",
                            "rawdesc": "The index of the hat to be checked.",
                            "start": [
                                197,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets the direction of the Joystick's hat.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHat)\n\n@*param* `hat` — The index of the hat to be checked.\n\n@*return* `direction` — The direction the hat is pushed.\n\n```lua\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \ndirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "finish": [
                        197,
                        33
                    ],
                    "rawdesc": "\nGets the direction of the Joystick's hat.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHat)\n\n\n```lua\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \ndirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "returns": [
                        {
                            "desc": "The direction the hat is pushed.",
                            "name": "direction",
                            "rawdesc": "The direction the hat is pushed.",
                            "type": "function.return",
                            "view": "\"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4)"
                        }
                    ],
                    "start": [
                        197,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getHat(hat: number)\n  -> direction: \"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    197,
                    24
                ],
                "name": "getHat",
                "rawdesc": "\nGets the direction of the Joystick's hat.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHat)\n\n\n```lua\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \ndirection:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "start": [
                    197,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of hats on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHatCount)\n\n@*return* `hats` — How many hats the joystick has.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                206,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                206,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the number of hats on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHatCount)\n\n@*return* `hats` — How many hats the joystick has.",
                    "finish": [
                        206,
                        35
                    ],
                    "rawdesc": "\nGets the number of hats on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHatCount)",
                    "returns": [
                        {
                            "desc": "How many hats the joystick has.",
                            "name": "hats",
                            "rawdesc": "How many hats the joystick has.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        206,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getHatCount()\n  -> hats: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    206,
                    29
                ],
                "name": "getHatCount",
                "rawdesc": "\nGets the number of hats on the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getHatCount)",
                "start": [
                    206,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the joystick's unique identifier. The identifier will remain the same for the life of the game, even when the Joystick is disconnected and reconnected, but it '''will''' change when the game is re-launched.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getID)\n\n@*return* `id` — The Joystick's unique identifier. Remains the same as long as the game is running.\n\n@*return* `instanceid` — Unique instance identifier. Changes every time the Joystick is reconnected. nil if the Joystick is not connected.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                216,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                216,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the joystick's unique identifier. The identifier will remain the same for the life of the game, even when the Joystick is disconnected and reconnected, but it '''will''' change when the game is re-launched.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getID)\n\n@*return* `id` — The Joystick's unique identifier. Remains the same as long as the game is running.\n\n@*return* `instanceid` — Unique instance identifier. Changes every time the Joystick is reconnected. nil if the Joystick is not connected.",
                    "finish": [
                        216,
                        29
                    ],
                    "rawdesc": "\nGets the joystick's unique identifier. The identifier will remain the same for the life of the game, even when the Joystick is disconnected and reconnected, but it '''will''' change when the game is re-launched.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getID)",
                    "returns": [
                        {
                            "desc": "The Joystick's unique identifier. Remains the same as long as the game is running.",
                            "name": "id",
                            "rawdesc": "The Joystick's unique identifier. Remains the same as long as the game is running.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Unique instance identifier. Changes every time the Joystick is reconnected. nil if the Joystick is not connected.",
                            "name": "instanceid",
                            "rawdesc": "Unique instance identifier. Changes every time the Joystick is reconnected. nil if the Joystick is not connected.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        216,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getID()\n  -> id: number\n  2. instanceid: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    216,
                    23
                ],
                "name": "getID",
                "rawdesc": "\nGets the joystick's unique identifier. The identifier will remain the same for the life of the game, even when the Joystick is disconnected and reconnected, but it '''will''' change when the game is re-launched.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getID)",
                "start": [
                    216,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the name of the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getName)\n\n@*return* `name` — The name of the joystick.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                225,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                225,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the name of the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getName)\n\n@*return* `name` — The name of the joystick.",
                    "finish": [
                        225,
                        31
                    ],
                    "rawdesc": "\nGets the name of the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getName)",
                    "returns": [
                        {
                            "desc": "The name of the joystick.",
                            "name": "name",
                            "rawdesc": "The name of the joystick.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        225,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getName()\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    225,
                    25
                ],
                "name": "getName",
                "rawdesc": "\nGets the name of the joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getName)",
                "start": [
                    225,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current vibration motor strengths on a Joystick with rumble support.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getVibration)\n\n@*return* `left` — Current strength of the left vibration motor on the Joystick.\n\n@*return* `right` — Current strength of the right vibration motor on the Joystick.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                235,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                235,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets the current vibration motor strengths on a Joystick with rumble support.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getVibration)\n\n@*return* `left` — Current strength of the left vibration motor on the Joystick.\n\n@*return* `right` — Current strength of the right vibration motor on the Joystick.",
                    "finish": [
                        235,
                        36
                    ],
                    "rawdesc": "\nGets the current vibration motor strengths on a Joystick with rumble support.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getVibration)",
                    "returns": [
                        {
                            "desc": "Current strength of the left vibration motor on the Joystick.",
                            "name": "left",
                            "rawdesc": "Current strength of the left vibration motor on the Joystick.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Current strength of the right vibration motor on the Joystick.",
                            "name": "right",
                            "rawdesc": "Current strength of the right vibration motor on the Joystick.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        235,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:getVibration()\n  -> left: number\n  2. right: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    235,
                    30
                ],
                "name": "getVibration",
                "rawdesc": "\nGets the current vibration motor strengths on a Joystick with rumble support.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:getVibration)",
                "start": [
                    235,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joystick is connected.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isConnected)\n\n@*return* `connected` — True if the Joystick is currently connected, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                244,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                244,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets whether the Joystick is connected.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isConnected)\n\n@*return* `connected` — True if the Joystick is currently connected, false otherwise.",
                    "finish": [
                        244,
                        35
                    ],
                    "rawdesc": "\nGets whether the Joystick is connected.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isConnected)",
                    "returns": [
                        {
                            "desc": "True if the Joystick is currently connected, false otherwise.",
                            "name": "connected",
                            "rawdesc": "True if the Joystick is currently connected, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        244,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:isConnected()\n  -> connected: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    244,
                    29
                ],
                "name": "isConnected",
                "rawdesc": "\nGets whether the Joystick is connected.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isConnected)",
                "start": [
                    244,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if a button on the Joystick is pressed.\n\nLÖVE 0.9.0 had a bug which required the button indices passed to Joystick:isDown to be 0-based instead of 1-based, for example button 1 would be 0 for this function. It was fixed in 0.9.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isDown)\n\n@*param* `buttonN` — The index of a button to check.\n\n@*return* `anyDown` — True if any supplied button is down, false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                256,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                256,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "The index of a button to check.",
                            "finish": [
                                256,
                                32
                            ],
                            "name": "buttonN",
                            "rawdesc": "The index of a button to check.",
                            "start": [
                                256,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nChecks if a button on the Joystick is pressed.\n\nLÖVE 0.9.0 had a bug which required the button indices passed to Joystick:isDown to be 0-based instead of 1-based, for example button 1 would be 0 for this function. It was fixed in 0.9.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isDown)\n\n@*param* `buttonN` — The index of a button to check.\n\n@*return* `anyDown` — True if any supplied button is down, false if not.",
                    "finish": [
                        256,
                        37
                    ],
                    "rawdesc": "\nChecks if a button on the Joystick is pressed.\n\nLÖVE 0.9.0 had a bug which required the button indices passed to Joystick:isDown to be 0-based instead of 1-based, for example button 1 would be 0 for this function. It was fixed in 0.9.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isDown)",
                    "returns": [
                        {
                            "desc": "True if any supplied button is down, false if not.",
                            "name": "anyDown",
                            "rawdesc": "True if any supplied button is down, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        256,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:isDown(buttonN: number)\n  -> anyDown: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    256,
                    24
                ],
                "name": "isDown",
                "rawdesc": "\nChecks if a button on the Joystick is pressed.\n\nLÖVE 0.9.0 had a bug which required the button indices passed to Joystick:isDown to be 0-based instead of 1-based, for example button 1 would be 0 for this function. It was fixed in 0.9.1.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isDown)",
                "start": [
                    256,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joystick is recognized as a gamepad. If this is the case, the Joystick's buttons and axes can be used in a standardized manner across different operating systems and joystick models via Joystick:getGamepadAxis, Joystick:isGamepadDown, love.gamepadpressed, and related functions.\n\nLÖVE automatically recognizes most popular controllers with a similar layout to the Xbox 360 controller as gamepads, but you can add more with love.joystick.setGamepadMapping.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepad)\n\n@*return* `isgamepad` — True if the Joystick is recognized as a gamepad, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                267,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                267,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets whether the Joystick is recognized as a gamepad. If this is the case, the Joystick's buttons and axes can be used in a standardized manner across different operating systems and joystick models via Joystick:getGamepadAxis, Joystick:isGamepadDown, love.gamepadpressed, and related functions.\n\nLÖVE automatically recognizes most popular controllers with a similar layout to the Xbox 360 controller as gamepads, but you can add more with love.joystick.setGamepadMapping.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepad)\n\n@*return* `isgamepad` — True if the Joystick is recognized as a gamepad, false otherwise.",
                    "finish": [
                        267,
                        33
                    ],
                    "rawdesc": "\nGets whether the Joystick is recognized as a gamepad. If this is the case, the Joystick's buttons and axes can be used in a standardized manner across different operating systems and joystick models via Joystick:getGamepadAxis, Joystick:isGamepadDown, love.gamepadpressed, and related functions.\n\nLÖVE automatically recognizes most popular controllers with a similar layout to the Xbox 360 controller as gamepads, but you can add more with love.joystick.setGamepadMapping.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepad)",
                    "returns": [
                        {
                            "desc": "True if the Joystick is recognized as a gamepad, false otherwise.",
                            "name": "isgamepad",
                            "rawdesc": "True if the Joystick is recognized as a gamepad, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        267,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:isGamepad()\n  -> isgamepad: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    267,
                    27
                ],
                "name": "isGamepad",
                "rawdesc": "\nGets whether the Joystick is recognized as a gamepad. If this is the case, the Joystick's buttons and axes can be used in a standardized manner across different operating systems and joystick models via Joystick:getGamepadAxis, Joystick:isGamepadDown, love.gamepadpressed, and related functions.\n\nLÖVE automatically recognizes most popular controllers with a similar layout to the Xbox 360 controller as gamepads, but you can add more with love.joystick.setGamepadMapping.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepad)",
                "start": [
                    267,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if a virtual gamepad button on the Joystick is pressed. If the Joystick is not recognized as a Gamepad or isn't connected, then this function will always return false.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepadDown)\n\n@*param* `buttonN` — The gamepad button to check.\n\n@*return* `anyDown` — True if any supplied button is down, false if not.\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbuttonN:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                277,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                277,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "The gamepad button to check.",
                            "finish": [
                                277,
                                39
                            ],
                            "name": "buttonN",
                            "rawdesc": "The gamepad button to check.",
                            "start": [
                                277,
                                32
                            ],
                            "type": "local",
                            "view": "\"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10)"
                        }
                    ],
                    "desc": "\nChecks if a virtual gamepad button on the Joystick is pressed. If the Joystick is not recognized as a Gamepad or isn't connected, then this function will always return false.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepadDown)\n\n@*param* `buttonN` — The gamepad button to check.\n\n@*return* `anyDown` — True if any supplied button is down, false if not.\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbuttonN:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n```",
                    "finish": [
                        277,
                        44
                    ],
                    "rawdesc": "\nChecks if a virtual gamepad button on the Joystick is pressed. If the Joystick is not recognized as a Gamepad or isn't connected, then this function will always return false.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepadDown)\n\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbuttonN:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n```",
                    "returns": [
                        {
                            "desc": "True if any supplied button is down, false if not.",
                            "name": "anyDown",
                            "rawdesc": "True if any supplied button is down, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        277,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:isGamepadDown(buttonN: \"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10))\n  -> anyDown: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    277,
                    31
                ],
                "name": "isGamepadDown",
                "rawdesc": "\nChecks if a virtual gamepad button on the Joystick is pressed. If the Joystick is not recognized as a Gamepad or isn't connected, then this function will always return false.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isGamepadDown)\n\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbuttonN:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n```",
                "start": [
                    277,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joystick supports vibration.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isVibrationSupported)\n\n@*return* `supported` — True if rumble / force feedback vibration is supported on this Joystick, false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                286,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                286,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        }
                    ],
                    "desc": "\nGets whether the Joystick supports vibration.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isVibrationSupported)\n\n@*return* `supported` — True if rumble / force feedback vibration is supported on this Joystick, false if not.",
                    "finish": [
                        286,
                        44
                    ],
                    "rawdesc": "\nGets whether the Joystick supports vibration.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isVibrationSupported)",
                    "returns": [
                        {
                            "desc": "True if rumble / force feedback vibration is supported on this Joystick, false if not.",
                            "name": "supported",
                            "rawdesc": "True if rumble / force feedback vibration is supported on this Joystick, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        286,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:isVibrationSupported()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    286,
                    38
                ],
                "name": "isVibrationSupported",
                "rawdesc": "\nGets whether the Joystick supports vibration.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:isVibrationSupported)",
                "start": [
                    286,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the vibration motor speeds on a Joystick with rumble support. Most common gamepads have this functionality, although not all drivers give proper support. Use Joystick:isVibrationSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:setVibration)\n\n\n---\n\n@*param* `left` — Strength of the left vibration motor on the Joystick. Must be in the range of 1.\n\n@*param* `right` — Strength of the right vibration motor on the Joystick. Must be in the range of 1.\n\n@*return* `success` — True if the vibration was successfully applied, false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "finish": [
                                299,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents a physical joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                            "start": [
                                299,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joystick"
                        },
                        {
                            "desc": "Strength of the left vibration motor on the Joystick. Must be in the range of 1.",
                            "finish": [
                                299,
                                35
                            ],
                            "name": "left",
                            "rawdesc": "Strength of the left vibration motor on the Joystick. Must be in the range of 1.",
                            "start": [
                                299,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Strength of the right vibration motor on the Joystick. Must be in the range of 1.",
                            "finish": [
                                299,
                                42
                            ],
                            "name": "right",
                            "rawdesc": "Strength of the right vibration motor on the Joystick. Must be in the range of 1.",
                            "start": [
                                299,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the vibration motor speeds on a Joystick with rumble support. Most common gamepads have this functionality, although not all drivers give proper support. Use Joystick:isVibrationSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:setVibration)\n\n\n---\n\n@*param* `left` — Strength of the left vibration motor on the Joystick. Must be in the range of 1.\n\n@*param* `right` — Strength of the right vibration motor on the Joystick. Must be in the range of 1.\n\n@*return* `success` — True if the vibration was successfully applied, false if not.",
                    "finish": [
                        299,
                        47
                    ],
                    "rawdesc": "\nSets the vibration motor speeds on a Joystick with rumble support. Most common gamepads have this functionality, although not all drivers give proper support. Use Joystick:isVibrationSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:setVibration)",
                    "returns": [
                        {
                            "desc": "True if the vibration was successfully applied, false if not.",
                            "name": "success",
                            "rawdesc": "True if the vibration was successfully applied, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        299,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joystick:setVibration(left: number, right: number)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    299,
                    30
                ],
                "name": "setVibration",
                "rawdesc": "\nSets the vibration motor speeds on a Joystick with rumble support. Most common gamepads have this functionality, although not all drivers give proper support. Use Joystick:isVibrationSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/Joystick:setVibration)",
                "start": [
                    299,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Joystick",
        "type": "type",
        "view": "love.Joystick"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nlove.JoystickHat:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "finish": [
                    443,
                    8
                ],
                "rawdesc": "```lua\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nlove.JoystickHat:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "start": [
                    407,
                    10
                ],
                "type": "doc.alias",
                "view": "\"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4)"
            }
        ],
        "fields": [],
        "name": "love.JoystickHat",
        "type": "type",
        "view": "love.JoystickHat"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \nlove.JoystickInputType:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n```",
                "finish": [
                    463,
                    10
                ],
                "rawdesc": "```lua\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \nlove.JoystickInputType:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n```",
                "start": [
                    451,
                    10
                ],
                "type": "doc.alias",
                "view": "\"axis\"|\"button\"|\"hat\""
            }
        ],
        "fields": [],
        "name": "love.JoystickInputType",
        "type": "type",
        "view": "love.JoystickInputType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nlove.KeyConstant:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "finish": [
                    693,
                    19
                ],
                "rawdesc": "```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nlove.KeyConstant:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "start": [
                    117,
                    10
                ],
                "type": "doc.alias",
                "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
            }
        ],
        "fields": [],
        "name": "love.KeyConstant",
        "type": "type",
        "view": "love.KeyConstant"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \nlove.LineJoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "finish": [
                    3746,
                    12
                ],
                "rawdesc": "```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \nlove.LineJoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "start": [
                    3734,
                    10
                ],
                "type": "doc.alias",
                "view": "\"bevel\"|\"miter\"|\"none\""
            }
        ],
        "fields": [],
        "name": "love.LineJoin",
        "type": "type",
        "view": "love.LineJoin"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nlove.LineStyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "finish": [
                    3762,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nlove.LineStyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "start": [
                    3754,
                    10
                ],
                "type": "doc.alias",
                "view": "\"rough\"|\"smooth\""
            }
        ],
        "fields": [],
        "name": "love.LineStyle",
        "type": "type",
        "view": "love.LineStyle"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The layout of matrix elements (row-major or column-major).\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MatrixLayout)\n-- \nlove.MatrixLayout:\n    | \"row\" -- The matrix is row-major:\n    | \"column\" -- The matrix is column-major:\n```",
                "finish": [
                    703,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- The layout of matrix elements (row-major or column-major).\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MatrixLayout)\n-- \nlove.MatrixLayout:\n    | \"row\" -- The matrix is row-major:\n    | \"column\" -- The matrix is column-major:\n```",
                "start": [
                    695,
                    10
                ],
                "type": "doc.alias",
                "view": "\"column\"|\"row\""
            }
        ],
        "fields": [],
        "name": "love.MatrixLayout",
        "type": "type",
        "view": "love.MatrixLayout"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            1677,
                            34
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            1677,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1677,
                            47
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1677,
                            36
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1677,
                    47
                ],
                "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    1677,
                    10
                ],
                "type": "doc.class",
                "view": "love.Mesh",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAttaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing. This can be used to share vertex attribute data between several different Meshes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:attachAttribute)\n\n\n---\n\n@*param* `name` — The name of the vertex attribute to attach.\n\n@*param* `mesh` — The Mesh to get the vertex attribute from.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1689,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1689,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The name of the vertex attribute to attach.",
                            "finish": [
                                1689,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name of the vertex attribute to attach.",
                            "start": [
                                1689,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The Mesh to get the vertex attribute from.",
                            "finish": [
                                1689,
                                40
                            ],
                            "name": "mesh",
                            "rawdesc": "The Mesh to get the vertex attribute from.",
                            "start": [
                                1689,
                                36
                            ],
                            "type": "local",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nAttaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing. This can be used to share vertex attribute data between several different Meshes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:attachAttribute)\n\n\n---\n\n@*param* `name` — The name of the vertex attribute to attach.\n\n@*param* `mesh` — The Mesh to get the vertex attribute from.",
                    "finish": [
                        1689,
                        45
                    ],
                    "rawdesc": "\nAttaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing. This can be used to share vertex attribute data between several different Meshes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:attachAttribute)",
                    "start": [
                        1689,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:attachAttribute(name: string, mesh: love.Mesh)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1689,
                    29
                ],
                "name": "attachAttribute",
                "rawdesc": "\nAttaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing. This can be used to share vertex attribute data between several different Meshes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:attachAttribute)",
                "start": [
                    1689,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves a previously attached vertex attribute from this Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:detachAttribute)\n\n@*param* `name` — The name of the attached vertex attribute to detach.\n\n@*return* `success` — Whether the attribute was successfully detached.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1699,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1699,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The name of the attached vertex attribute to detach.",
                            "finish": [
                                1699,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name of the attached vertex attribute to detach.",
                            "start": [
                                1699,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRemoves a previously attached vertex attribute from this Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:detachAttribute)\n\n@*param* `name` — The name of the attached vertex attribute to detach.\n\n@*return* `success` — Whether the attribute was successfully detached.",
                    "finish": [
                        1699,
                        39
                    ],
                    "rawdesc": "\nRemoves a previously attached vertex attribute from this Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:detachAttribute)",
                    "returns": [
                        {
                            "desc": "Whether the attribute was successfully detached.",
                            "name": "success",
                            "rawdesc": "Whether the attribute was successfully detached.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1699,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:detachAttribute(name: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1699,
                    29
                ],
                "name": "detachAttribute",
                "rawdesc": "\nRemoves a previously attached vertex attribute from this Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:detachAttribute)",
                "start": [
                    1699,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nImmediately sends all modified vertex data in the Mesh to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(mesh, ...) will do it automatically if needed, but explicitly using **Mesh:flush** gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(mesh, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:flush)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1711,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1711,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nImmediately sends all modified vertex data in the Mesh to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(mesh, ...) will do it automatically if needed, but explicitly using **Mesh:flush** gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(mesh, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:flush)",
                    "finish": [
                        1711,
                        25
                    ],
                    "rawdesc": "\nImmediately sends all modified vertex data in the Mesh to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(mesh, ...) will do it automatically if needed, but explicitly using **Mesh:flush** gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(mesh, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:flush)",
                    "start": [
                        1711,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:flush()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1711,
                    19
                ],
                "name": "flush",
                "rawdesc": "\nImmediately sends all modified vertex data in the Mesh to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(mesh, ...) will do it automatically if needed, but explicitly using **Mesh:flush** gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(mesh, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:flush)",
                "start": [
                    1711,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawMode)\n\n@*return* `mode` — The mode used when drawing the Mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1720,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1720,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nGets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawMode)\n\n@*return* `mode` — The mode used when drawing the Mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                    "finish": [
                        1720,
                        31
                    ],
                    "rawdesc": "\nGets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawMode)\n\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                    "returns": [
                        {
                            "desc": "The mode used when drawing the Mesh.",
                            "name": "mode",
                            "rawdesc": "The mode used when drawing the Mesh.",
                            "type": "function.return",
                            "view": "\"fan\"|\"points\"|\"strip\"|\"triangles\""
                        }
                    ],
                    "start": [
                        1720,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getDrawMode()\n  -> mode: \"fan\"|\"points\"|\"strip\"|\"triangles\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1720,
                    25
                ],
                "name": "getDrawMode",
                "rawdesc": "\nGets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawMode)\n\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                "start": [
                    1720,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the range of vertices used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawRange)\n\n@*return* `min` — The index of the first vertex used when drawing, or the index of the first value in the vertex map used if one is set for this Mesh.\n\n@*return* `max` — The index of the last vertex used when drawing, or the index of the last value in the vertex map used if one is set for this Mesh.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1730,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1730,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nGets the range of vertices used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawRange)\n\n@*return* `min` — The index of the first vertex used when drawing, or the index of the first value in the vertex map used if one is set for this Mesh.\n\n@*return* `max` — The index of the last vertex used when drawing, or the index of the last value in the vertex map used if one is set for this Mesh.",
                    "finish": [
                        1730,
                        32
                    ],
                    "rawdesc": "\nGets the range of vertices used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawRange)",
                    "returns": [
                        {
                            "desc": "The index of the first vertex used when drawing, or the index of the first value in the vertex map used if one is set for this Mesh.",
                            "name": "min",
                            "rawdesc": "The index of the first vertex used when drawing, or the index of the first value in the vertex map used if one is set for this Mesh.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the last vertex used when drawing, or the index of the last value in the vertex map used if one is set for this Mesh.",
                            "name": "max",
                            "rawdesc": "The index of the last vertex used when drawing, or the index of the last value in the vertex map used if one is set for this Mesh.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1730,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getDrawRange()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1730,
                    26
                ],
                "name": "getDrawRange",
                "rawdesc": "\nGets the range of vertices used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getDrawRange)",
                "start": [
                    1730,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getTexture)\n\n@*return* `texture` — The Image or Canvas to texture the Mesh with when drawing, or nil if none is set.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1739,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1739,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nGets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getTexture)\n\n@*return* `texture` — The Image or Canvas to texture the Mesh with when drawing, or nil if none is set.",
                    "finish": [
                        1739,
                        30
                    ],
                    "rawdesc": "\nGets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getTexture)",
                    "returns": [
                        {
                            "desc": "The Image or Canvas to texture the Mesh with when drawing, or nil if none is set.",
                            "name": "texture",
                            "rawdesc": "The Image or Canvas to texture the Mesh with when drawing, or nil if none is set.",
                            "type": "function.return",
                            "view": "love.Texture"
                        }
                    ],
                    "start": [
                        1739,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getTexture()\n  -> texture: love.Texture"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1739,
                    24
                ],
                "name": "getTexture",
                "rawdesc": "\nGets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getTexture)",
                "start": [
                    1739,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertex)\n\n\n---\n\n@*param* `index` — The one-based index of the vertex you want to retrieve the information for.\n\n@*return* `attributecomponent` — The first component of the first vertex attribute in the specified vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1752,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1752,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The one-based index of the vertex you want to retrieve the information for.",
                            "finish": [
                                1752,
                                29
                            ],
                            "name": "index",
                            "rawdesc": "The one-based index of the vertex you want to retrieve the information for.",
                            "start": [
                                1752,
                                24
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertex)\n\n\n---\n\n@*param* `index` — The one-based index of the vertex you want to retrieve the information for.\n\n@*return* `attributecomponent` — The first component of the first vertex attribute in the specified vertex.",
                    "finish": [
                        1752,
                        34
                    ],
                    "rawdesc": "\nGets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertex)",
                    "returns": [
                        {
                            "desc": "The first component of the first vertex attribute in the specified vertex.",
                            "name": "attributecomponent",
                            "rawdesc": "The first component of the first vertex attribute in the specified vertex.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1752,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getVertex(index: number)\n  -> attributecomponent: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1752,
                    23
                ],
                "name": "getVertex",
                "rawdesc": "\nGets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertex)",
                "start": [
                    1752,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexAttribute)\n\n@*param* `vertexindex` — The index of the the vertex you want to retrieve the attribute for (one-based).\n\n@*param* `attributeindex` — The index of the attribute within the vertex to be retrieved (one-based).\n\n@*return* `value1` — The value of the first component of the attribute.\n\n@*return* `value2` — The value of the second component of the attribute.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1766,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1766,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The index of the the vertex you want to retrieve the attribute for (one-based).",
                            "finish": [
                                1766,
                                44
                            ],
                            "name": "vertexindex",
                            "rawdesc": "The index of the the vertex you want to retrieve the attribute for (one-based).",
                            "start": [
                                1766,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the attribute within the vertex to be retrieved (one-based).",
                            "finish": [
                                1766,
                                60
                            ],
                            "name": "attributeindex",
                            "rawdesc": "The index of the attribute within the vertex to be retrieved (one-based).",
                            "start": [
                                1766,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexAttribute)\n\n@*param* `vertexindex` — The index of the the vertex you want to retrieve the attribute for (one-based).\n\n@*param* `attributeindex` — The index of the attribute within the vertex to be retrieved (one-based).\n\n@*return* `value1` — The value of the first component of the attribute.\n\n@*return* `value2` — The value of the second component of the attribute.",
                    "finish": [
                        1766,
                        65
                    ],
                    "rawdesc": "\nGets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexAttribute)",
                    "returns": [
                        {
                            "desc": "The value of the first component of the attribute.",
                            "name": "value1",
                            "rawdesc": "The value of the first component of the attribute.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The value of the second component of the attribute.",
                            "name": "value2",
                            "rawdesc": "The value of the second component of the attribute.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1766,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getVertexAttribute(vertexindex: number, attributeindex: number)\n  -> value1: number\n  2. value2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1766,
                    32
                ],
                "name": "getVertexAttribute",
                "rawdesc": "\nGets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexAttribute)",
                "start": [
                    1766,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the total number of vertices in the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexCount)\n\n@*return* `count` — The total number of vertices in the mesh.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1775,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1775,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nGets the total number of vertices in the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexCount)\n\n@*return* `count` — The total number of vertices in the mesh.",
                    "finish": [
                        1775,
                        34
                    ],
                    "rawdesc": "\nGets the total number of vertices in the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexCount)",
                    "returns": [
                        {
                            "desc": "The total number of vertices in the mesh.",
                            "name": "count",
                            "rawdesc": "The total number of vertices in the mesh.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1775,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getVertexCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1775,
                    28
                ],
                "name": "getVertexCount",
                "rawdesc": "\nGets the total number of vertices in the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexCount)",
                "start": [
                    1775,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the vertex format that the Mesh was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexFormat)\n\n@*return* `format` — The vertex format of the Mesh, which is a table containing tables for each vertex attribute the Mesh was created with, in the form of {attribute, ...}.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1784,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1784,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nGets the vertex format that the Mesh was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexFormat)\n\n@*return* `format` — The vertex format of the Mesh, which is a table containing tables for each vertex attribute the Mesh was created with, in the form of {attribute, ...}.",
                    "finish": [
                        1784,
                        35
                    ],
                    "rawdesc": "\nGets the vertex format that the Mesh was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexFormat)",
                    "returns": [
                        {
                            "desc": "The vertex format of the Mesh, which is a table containing tables for each vertex attribute the Mesh was created with, in the form of {attribute, ...}.",
                            "name": "format",
                            "rawdesc": "The vertex format of the Mesh, which is a table containing tables for each vertex attribute the Mesh was created with, in the form of {attribute, ...}.",
                            "type": "function.return",
                            "view": "{ attribute: table }"
                        }
                    ],
                    "start": [
                        1784,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getVertexFormat()\n  -> format: { attribute: table }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1784,
                    29
                ],
                "name": "getVertexFormat",
                "rawdesc": "\nGets the vertex format that the Mesh was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexFormat)",
                "start": [
                    1784,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nIf no vertex map has been set previously via Mesh:setVertexMap, then this function will return nil in LÖVE 0.10.0+, or an empty table in 0.9.2 and older.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexMap)\n\n@*return* `map` — A table containing the list of vertex indices used when drawing.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1795,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1795,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nGets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nIf no vertex map has been set previously via Mesh:setVertexMap, then this function will return nil in LÖVE 0.10.0+, or an empty table in 0.9.2 and older.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexMap)\n\n@*return* `map` — A table containing the list of vertex indices used when drawing.",
                    "finish": [
                        1795,
                        32
                    ],
                    "rawdesc": "\nGets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nIf no vertex map has been set previously via Mesh:setVertexMap, then this function will return nil in LÖVE 0.10.0+, or an empty table in 0.9.2 and older.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexMap)",
                    "returns": [
                        {
                            "desc": "A table containing the list of vertex indices used when drawing.",
                            "name": "map",
                            "rawdesc": "A table containing the list of vertex indices used when drawing.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        1795,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:getVertexMap()\n  -> map: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1795,
                    26
                ],
                "name": "getVertexMap",
                "rawdesc": "\nGets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nIf no vertex map has been set previously via Mesh:setVertexMap, then this function will return nil in LÖVE 0.10.0+, or an empty table in 0.9.2 and older.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:getVertexMap)",
                "start": [
                    1795,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether a specific vertex attribute in the Mesh is enabled. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:isAttributeEnabled)\n\n@*param* `name` — The name of the vertex attribute to be checked.\n\n@*return* `enabled` — Whether the vertex attribute is used when drawing this Mesh.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1805,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1805,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The name of the vertex attribute to be checked.",
                            "finish": [
                                1805,
                                37
                            ],
                            "name": "name",
                            "rawdesc": "The name of the vertex attribute to be checked.",
                            "start": [
                                1805,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets whether a specific vertex attribute in the Mesh is enabled. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:isAttributeEnabled)\n\n@*param* `name` — The name of the vertex attribute to be checked.\n\n@*return* `enabled` — Whether the vertex attribute is used when drawing this Mesh.",
                    "finish": [
                        1805,
                        42
                    ],
                    "rawdesc": "\nGets whether a specific vertex attribute in the Mesh is enabled. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:isAttributeEnabled)",
                    "returns": [
                        {
                            "desc": "Whether the vertex attribute is used when drawing this Mesh.",
                            "name": "enabled",
                            "rawdesc": "Whether the vertex attribute is used when drawing this Mesh.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1805,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:isAttributeEnabled(name: string)\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1805,
                    32
                ],
                "name": "isAttributeEnabled",
                "rawdesc": "\nGets whether a specific vertex attribute in the Mesh is enabled. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:isAttributeEnabled)",
                "start": [
                    1805,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables or disables a specific vertex attribute in the Mesh. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setAttributeEnabled)\n\n@*param* `name` — The name of the vertex attribute to enable or disable.\n\n@*param* `enable` — Whether the vertex attribute is used when drawing this Mesh.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1815,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1815,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The name of the vertex attribute to enable or disable.",
                            "finish": [
                                1815,
                                38
                            ],
                            "name": "name",
                            "rawdesc": "The name of the vertex attribute to enable or disable.",
                            "start": [
                                1815,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Whether the vertex attribute is used when drawing this Mesh.",
                            "finish": [
                                1815,
                                46
                            ],
                            "name": "enable",
                            "rawdesc": "Whether the vertex attribute is used when drawing this Mesh.",
                            "start": [
                                1815,
                                40
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables or disables a specific vertex attribute in the Mesh. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setAttributeEnabled)\n\n@*param* `name` — The name of the vertex attribute to enable or disable.\n\n@*param* `enable` — Whether the vertex attribute is used when drawing this Mesh.",
                    "finish": [
                        1815,
                        51
                    ],
                    "rawdesc": "\nEnables or disables a specific vertex attribute in the Mesh. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setAttributeEnabled)",
                    "start": [
                        1815,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setAttributeEnabled(name: string, enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1815,
                    33
                ],
                "name": "setAttributeEnabled",
                "rawdesc": "\nEnables or disables a specific vertex attribute in the Mesh. Vertex data from disabled attributes is not used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setAttributeEnabled)",
                "start": [
                    1815,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawMode)\n\n@*param* `mode` — The mode to use when drawing the Mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1824,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1824,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The mode to use when drawing the Mesh.",
                            "finish": [
                                1824,
                                30
                            ],
                            "name": "mode",
                            "rawdesc": "The mode to use when drawing the Mesh.",
                            "start": [
                                1824,
                                26
                            ],
                            "type": "local",
                            "view": "\"fan\"|\"points\"|\"strip\"|\"triangles\""
                        }
                    ],
                    "desc": "\nSets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawMode)\n\n@*param* `mode` — The mode to use when drawing the Mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                    "finish": [
                        1824,
                        35
                    ],
                    "rawdesc": "\nSets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawMode)\n\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                    "start": [
                        1824,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setDrawMode(mode: \"fan\"|\"points\"|\"strip\"|\"triangles\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1824,
                    25
                ],
                "name": "setDrawMode",
                "rawdesc": "\nSets the mode used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawMode)\n\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                "start": [
                    1824,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRestricts the drawn vertices of the Mesh to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawRange)\n\n\n---\n\n@*param* `start` — The index of the first vertex to use when drawing, or the index of the first value in the vertex map to use if one is set for this Mesh.\n\n@*param* `count` — The number of vertices to use when drawing, or number of values in the vertex map to use if one is set for this Mesh.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1835,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1835,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The index of the first vertex to use when drawing, or the index of the first value in the vertex map to use if one is set for this Mesh.",
                            "finish": [
                                1835,
                                32
                            ],
                            "name": "start",
                            "rawdesc": "The index of the first vertex to use when drawing, or the index of the first value in the vertex map to use if one is set for this Mesh.",
                            "start": [
                                1835,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of vertices to use when drawing, or number of values in the vertex map to use if one is set for this Mesh.",
                            "finish": [
                                1835,
                                39
                            ],
                            "name": "count",
                            "rawdesc": "The number of vertices to use when drawing, or number of values in the vertex map to use if one is set for this Mesh.",
                            "start": [
                                1835,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nRestricts the drawn vertices of the Mesh to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawRange)\n\n\n---\n\n@*param* `start` — The index of the first vertex to use when drawing, or the index of the first value in the vertex map to use if one is set for this Mesh.\n\n@*param* `count` — The number of vertices to use when drawing, or number of values in the vertex map to use if one is set for this Mesh.",
                    "finish": [
                        1835,
                        44
                    ],
                    "rawdesc": "\nRestricts the drawn vertices of the Mesh to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawRange)",
                    "start": [
                        1835,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setDrawRange(start: number, count: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1835,
                    26
                ],
                "name": "setDrawRange",
                "rawdesc": "\nRestricts the drawn vertices of the Mesh to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setDrawRange)",
                "start": [
                    1835,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setTexture)\n\n\n---\n\n@*param* `texture` — The Image or Canvas to texture the Mesh with when drawing.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1845,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1845,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The Image or Canvas to texture the Mesh with when drawing.",
                            "finish": [
                                1845,
                                32
                            ],
                            "name": "texture",
                            "rawdesc": "The Image or Canvas to texture the Mesh with when drawing.",
                            "start": [
                                1845,
                                25
                            ],
                            "type": "local",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nSets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setTexture)\n\n\n---\n\n@*param* `texture` — The Image or Canvas to texture the Mesh with when drawing.",
                    "finish": [
                        1845,
                        37
                    ],
                    "rawdesc": "\nSets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setTexture)",
                    "start": [
                        1845,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setTexture(texture: love.Texture)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1845,
                    24
                ],
                "name": "setTexture",
                "rawdesc": "\nSets the texture (Image or Canvas) used when drawing the Mesh.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setTexture)",
                "start": [
                    1845,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertex)\n\n\n---\n\n@*param* `index` — The index of the the vertex you want to modify (one-based).\n\n@*param* `attributecomponent` — The first component of the first vertex attribute in the specified vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1861,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1861,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The index of the the vertex you want to modify (one-based).",
                            "finish": [
                                1861,
                                29
                            ],
                            "name": "index",
                            "rawdesc": "The index of the the vertex you want to modify (one-based).",
                            "start": [
                                1861,
                                24
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The first component of the first vertex attribute in the specified vertex.",
                            "finish": [
                                1861,
                                49
                            ],
                            "name": "attributecomponent",
                            "rawdesc": "The first component of the first vertex attribute in the specified vertex.",
                            "start": [
                                1861,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1861,
                                54
                            ],
                            "start": [
                                1861,
                                51
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertex)\n\n\n---\n\n@*param* `index` — The index of the the vertex you want to modify (one-based).\n\n@*param* `attributecomponent` — The first component of the first vertex attribute in the specified vertex.",
                    "finish": [
                        1861,
                        59
                    ],
                    "rawdesc": "\nSets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertex)",
                    "start": [
                        1861,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setVertex(index: number, attributecomponent: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1861,
                    23
                ],
                "name": "setVertex",
                "rawdesc": "\nSets the properties of a vertex in the Mesh.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertex)",
                "start": [
                    1861,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexAttribute)\n\n@*param* `vertexindex` — The index of the the vertex to be modified (one-based).\n\n@*param* `attributeindex` — The index of the attribute within the vertex to be modified (one-based).\n\n@*param* `value1` — The new value for the first component of the attribute.\n\n@*param* `value2` — The new value for the second component of the attribute.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1876,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1876,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The index of the the vertex to be modified (one-based).",
                            "finish": [
                                1876,
                                44
                            ],
                            "name": "vertexindex",
                            "rawdesc": "The index of the the vertex to be modified (one-based).",
                            "start": [
                                1876,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the attribute within the vertex to be modified (one-based).",
                            "finish": [
                                1876,
                                60
                            ],
                            "name": "attributeindex",
                            "rawdesc": "The index of the attribute within the vertex to be modified (one-based).",
                            "start": [
                                1876,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The new value for the first component of the attribute.",
                            "finish": [
                                1876,
                                68
                            ],
                            "name": "value1",
                            "rawdesc": "The new value for the first component of the attribute.",
                            "start": [
                                1876,
                                62
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The new value for the second component of the attribute.",
                            "finish": [
                                1876,
                                76
                            ],
                            "name": "value2",
                            "rawdesc": "The new value for the second component of the attribute.",
                            "start": [
                                1876,
                                70
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                1876,
                                81
                            ],
                            "start": [
                                1876,
                                78
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexAttribute)\n\n@*param* `vertexindex` — The index of the the vertex to be modified (one-based).\n\n@*param* `attributeindex` — The index of the attribute within the vertex to be modified (one-based).\n\n@*param* `value1` — The new value for the first component of the attribute.\n\n@*param* `value2` — The new value for the second component of the attribute.",
                    "finish": [
                        1876,
                        86
                    ],
                    "rawdesc": "\nSets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexAttribute)",
                    "start": [
                        1876,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setVertexAttribute(vertexindex: number, attributeindex: number, value1: number, value2: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1876,
                    32
                ],
                "name": "setVertexAttribute",
                "rawdesc": "\nSets the properties of a specific attribute within a vertex in the Mesh.\n\nMeshes without a custom vertex format specified in love.graphics.newMesh have position as their first attribute, texture coordinates as their second attribute, and color as their third attribute.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexAttribute)",
                "start": [
                    1876,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nThe vertex map allows you to re-order or reuse vertices when drawing without changing the actual vertex parameters or duplicating vertices. It is especially useful when combined with different Mesh Draw Modes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexMap)\n\n\n---\n\n@*param* `map` — A table containing a list of vertex indices to use when drawing. Values must be in the range of Mesh:getVertexCount().",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1889,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1889,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "A table containing a list of vertex indices to use when drawing. Values must be in the range of Mesh:getVertexCount().",
                            "finish": [
                                1889,
                                30
                            ],
                            "name": "map",
                            "rawdesc": "A table containing a list of vertex indices to use when drawing. Values must be in the range of Mesh:getVertexCount().",
                            "start": [
                                1889,
                                27
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nThe vertex map allows you to re-order or reuse vertices when drawing without changing the actual vertex parameters or duplicating vertices. It is especially useful when combined with different Mesh Draw Modes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexMap)\n\n\n---\n\n@*param* `map` — A table containing a list of vertex indices to use when drawing. Values must be in the range of Mesh:getVertexCount().",
                    "finish": [
                        1889,
                        35
                    ],
                    "rawdesc": "\nSets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nThe vertex map allows you to re-order or reuse vertices when drawing without changing the actual vertex parameters or duplicating vertices. It is especially useful when combined with different Mesh Draw Modes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexMap)",
                    "start": [
                        1889,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setVertexMap(map: table)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1889,
                    26
                ],
                "name": "setVertexMap",
                "rawdesc": "\nSets the vertex map for the Mesh. The vertex map describes the order in which the vertices are used when the Mesh is drawn. The vertices, vertex map, and mesh draw mode work together to determine what exactly is displayed on the screen.\n\nThe vertex map allows you to re-order or reuse vertices when drawing without changing the actual vertex parameters or duplicating vertices. It is especially useful when combined with different Mesh Draw Modes.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertexMap)",
                "start": [
                    1889,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplaces a range of vertices in the Mesh with new ones. The total number of vertices in a Mesh cannot be changed after it has been created. This is often more efficient than calling Mesh:setVertex in a loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertices)\n\n\n---\n\n@*param* `vertices` — The table filled with vertex information tables for each vertex, in the form of {vertex, ...} where each vertex is a table in the form of {attributecomponent, ...}.\n\n@*param* `startvertex` — The index of the first vertex to replace.\n\n@*param* `count` — Amount of vertices to replace.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1902,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA 2D polygon mesh used for drawing arbitrary textured shapes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1902,
                                8
                            ],
                            "type": "self",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The table filled with vertex information tables for each vertex, in the form of {vertex, ...} where each vertex is a table in the form of {attributecomponent, ...}.",
                            "finish": [
                                1902,
                                34
                            ],
                            "name": "vertices",
                            "rawdesc": "The table filled with vertex information tables for each vertex, in the form of {vertex, ...} where each vertex is a table in the form of {attributecomponent, ...}.",
                            "start": [
                                1902,
                                26
                            ],
                            "type": "local",
                            "view": "{ attributecomponent: number }"
                        },
                        {
                            "desc": "The index of the first vertex to replace.",
                            "finish": [
                                1902,
                                47
                            ],
                            "name": "startvertex",
                            "rawdesc": "The index of the first vertex to replace.",
                            "start": [
                                1902,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Amount of vertices to replace.",
                            "finish": [
                                1902,
                                54
                            ],
                            "name": "count",
                            "rawdesc": "Amount of vertices to replace.",
                            "start": [
                                1902,
                                49
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReplaces a range of vertices in the Mesh with new ones. The total number of vertices in a Mesh cannot be changed after it has been created. This is often more efficient than calling Mesh:setVertex in a loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertices)\n\n\n---\n\n@*param* `vertices` — The table filled with vertex information tables for each vertex, in the form of {vertex, ...} where each vertex is a table in the form of {attributecomponent, ...}.\n\n@*param* `startvertex` — The index of the first vertex to replace.\n\n@*param* `count` — Amount of vertices to replace.",
                    "finish": [
                        1902,
                        59
                    ],
                    "rawdesc": "\nReplaces a range of vertices in the Mesh with new ones. The total number of vertices in a Mesh cannot be changed after it has been created. This is often more efficient than calling Mesh:setVertex in a loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertices)",
                    "start": [
                        1902,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Mesh:setVertices(vertices: { attributecomponent: number }, startvertex?: number, count?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1902,
                    25
                ],
                "name": "setVertices",
                "rawdesc": "\nReplaces a range of vertices in the Mesh with new ones. The total number of vertices in a Mesh cannot be changed after it has been created. This is often more efficient than calling Mesh:setVertex in a loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Mesh:setVertices)",
                "start": [
                    1902,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Mesh",
        "type": "type",
        "view": "love.Mesh"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nlove.MeshDrawMode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                "finish": [
                    3786,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nlove.MeshDrawMode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n```",
                "start": [
                    3770,
                    10
                ],
                "type": "doc.alias",
                "view": "\"fan\"|\"points\"|\"strip\"|\"triangles\""
            }
        ],
        "fields": [],
        "name": "love.MeshDrawMode",
        "type": "type",
        "view": "love.MeshDrawMode"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \nlove.MessageBoxType:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                "finish": [
                    472,
                    12
                ],
                "rawdesc": "```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \nlove.MessageBoxType:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                "start": [
                    460,
                    10
                ],
                "type": "doc.alias",
                "view": "\"error\"|\"info\"|\"warning\""
            }
        ],
        "fields": [],
        "name": "love.MessageBoxType",
        "type": "type",
        "view": "love.MessageBoxType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Controls whether a Canvas has mipmaps, and its behaviour when it does.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MipmapMode)\n-- \nlove.MipmapMode:\n    | \"none\" -- The Canvas has no mipmaps.\n    | \"auto\" -- The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.\n    | \"manual\" -- The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.\n```",
                "finish": [
                    3806,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Controls whether a Canvas has mipmaps, and its behaviour when it does.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MipmapMode)\n-- \nlove.MipmapMode:\n    | \"none\" -- The Canvas has no mipmaps.\n    | \"auto\" -- The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.\n    | \"manual\" -- The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.\n```",
                "start": [
                    3794,
                    10
                ],
                "type": "doc.alias",
                "view": "\"auto\"|\"manual\"|\"none\""
            }
        ],
        "fields": [],
        "name": "love.MipmapMode",
        "type": "type",
        "view": "love.MipmapMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2023,
                            37
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2023,
                            27
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2023,
                            50
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2023,
                            39
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2023,
                    50
                ],
                "rawdesc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2023,
                    10
                ],
                "type": "doc.class",
                "view": "love.MotorJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the target angular offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getAngularOffset)\n\n@*return* `angleoffset` — The target angular offset in radians: the second body's angle minus the first body's angle.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2033,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2033,
                                8
                            ],
                            "type": "self",
                            "view": "love.MotorJoint"
                        }
                    ],
                    "desc": "\nGets the target angular offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getAngularOffset)\n\n@*return* `angleoffset` — The target angular offset in radians: the second body's angle minus the first body's angle.",
                    "finish": [
                        2033,
                        42
                    ],
                    "rawdesc": "\nGets the target angular offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getAngularOffset)",
                    "returns": [
                        {
                            "desc": "The target angular offset in radians: the second body's angle minus the first body's angle.",
                            "name": "angleoffset",
                            "rawdesc": "The target angular offset in radians: the second body's angle minus the first body's angle.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2033,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MotorJoint:getAngularOffset()\n  -> angleoffset: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2033,
                    36
                ],
                "name": "getAngularOffset",
                "rawdesc": "\nGets the target angular offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getAngularOffset)",
                "start": [
                    2033,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getLinearOffset)\n\n@*return* `x` — The x component of the target linear offset, relative to the first Body.\n\n@*return* `y` — The y component of the target linear offset, relative to the first Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2043,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2043,
                                8
                            ],
                            "type": "self",
                            "view": "love.MotorJoint"
                        }
                    ],
                    "desc": "\nGets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getLinearOffset)\n\n@*return* `x` — The x component of the target linear offset, relative to the first Body.\n\n@*return* `y` — The y component of the target linear offset, relative to the first Body.",
                    "finish": [
                        2043,
                        41
                    ],
                    "rawdesc": "\nGets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getLinearOffset)",
                    "returns": [
                        {
                            "desc": "The x component of the target linear offset, relative to the first Body.",
                            "name": "x",
                            "rawdesc": "The x component of the target linear offset, relative to the first Body.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the target linear offset, relative to the first Body.",
                            "name": "y",
                            "rawdesc": "The y component of the target linear offset, relative to the first Body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2043,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MotorJoint:getLinearOffset()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2043,
                    35
                ],
                "name": "getLinearOffset",
                "rawdesc": "\nGets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:getLinearOffset)",
                "start": [
                    2043,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the target angluar offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setAngularOffset)\n\n@*param* `angleoffset` — The target angular offset in radians: the second body's angle minus the first body's angle.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2052,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2052,
                                8
                            ],
                            "type": "self",
                            "view": "love.MotorJoint"
                        },
                        {
                            "desc": "The target angular offset in radians: the second body's angle minus the first body's angle.",
                            "finish": [
                                2052,
                                48
                            ],
                            "name": "angleoffset",
                            "rawdesc": "The target angular offset in radians: the second body's angle minus the first body's angle.",
                            "start": [
                                2052,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the target angluar offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setAngularOffset)\n\n@*param* `angleoffset` — The target angular offset in radians: the second body's angle minus the first body's angle.",
                    "finish": [
                        2052,
                        53
                    ],
                    "rawdesc": "\nSets the target angluar offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setAngularOffset)",
                    "start": [
                        2052,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MotorJoint:setAngularOffset(angleoffset: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2052,
                    36
                ],
                "name": "setAngularOffset",
                "rawdesc": "\nSets the target angluar offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setAngularOffset)",
                "start": [
                    2052,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setLinearOffset)\n\n@*param* `x` — The x component of the target linear offset, relative to the first Body.\n\n@*param* `y` — The y component of the target linear offset, relative to the first Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2062,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nControls the relative motion between two Bodies. Position and rotation offsets can be specified, as well as the maximum motor force and torque that will be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2062,
                                8
                            ],
                            "type": "self",
                            "view": "love.MotorJoint"
                        },
                        {
                            "desc": "The x component of the target linear offset, relative to the first Body.",
                            "finish": [
                                2062,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "The x component of the target linear offset, relative to the first Body.",
                            "start": [
                                2062,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the target linear offset, relative to the first Body.",
                            "finish": [
                                2062,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "The y component of the target linear offset, relative to the first Body.",
                            "start": [
                                2062,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setLinearOffset)\n\n@*param* `x` — The x component of the target linear offset, relative to the first Body.\n\n@*param* `y` — The y component of the target linear offset, relative to the first Body.",
                    "finish": [
                        2062,
                        45
                    ],
                    "rawdesc": "\nSets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setLinearOffset)",
                    "start": [
                        2062,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MotorJoint:setLinearOffset(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2062,
                    35
                ],
                "name": "setLinearOffset",
                "rawdesc": "\nSets the target linear offset between the two Bodies the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/MotorJoint:setLinearOffset)",
                "start": [
                    2062,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.MotorJoint",
        "type": "type",
        "view": "love.MotorJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2070,
                            37
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2070,
                            27
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2070,
                            50
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2070,
                            39
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2070,
                    50
                ],
                "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2070,
                    10
                ],
                "type": "doc.class",
                "view": "love.MouseJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getDampingRatio)\n\n@*return* `ratio` — The new damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2080,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2080,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        }
                    ],
                    "desc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getDampingRatio)\n\n@*return* `ratio` — The new damping ratio.",
                    "finish": [
                        2080,
                        41
                    ],
                    "rawdesc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getDampingRatio)",
                    "returns": [
                        {
                            "desc": "The new damping ratio.",
                            "name": "ratio",
                            "rawdesc": "The new damping ratio.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2080,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:getDampingRatio()\n  -> ratio: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2080,
                    35
                ],
                "name": "getDampingRatio",
                "rawdesc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getDampingRatio)",
                "start": [
                    2080,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getFrequency)\n\n@*return* `freq` — The frequency in hertz.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2089,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2089,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        }
                    ],
                    "desc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getFrequency)\n\n@*return* `freq` — The frequency in hertz.",
                    "finish": [
                        2089,
                        38
                    ],
                    "rawdesc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getFrequency)",
                    "returns": [
                        {
                            "desc": "The frequency in hertz.",
                            "name": "freq",
                            "rawdesc": "The frequency in hertz.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2089,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:getFrequency()\n  -> freq: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2089,
                    32
                ],
                "name": "getFrequency",
                "rawdesc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getFrequency)",
                "start": [
                    2089,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getMaxForce)\n\n@*return* `f` — The max allowed force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2098,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2098,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        }
                    ],
                    "desc": "\nGets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getMaxForce)\n\n@*return* `f` — The max allowed force.",
                    "finish": [
                        2098,
                        37
                    ],
                    "rawdesc": "\nGets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getMaxForce)",
                    "returns": [
                        {
                            "desc": "The max allowed force.",
                            "name": "f",
                            "rawdesc": "The max allowed force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2098,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:getMaxForce()\n  -> f: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2098,
                    31
                ],
                "name": "getMaxForce",
                "rawdesc": "\nGets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getMaxForce)",
                "start": [
                    2098,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getTarget)\n\n@*return* `x` — The x-component of the target.\n\n@*return* `y` — The x-component of the target.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2108,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        }
                    ],
                    "desc": "\nGets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getTarget)\n\n@*return* `x` — The x-component of the target.\n\n@*return* `y` — The x-component of the target.",
                    "finish": [
                        2108,
                        35
                    ],
                    "rawdesc": "\nGets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getTarget)",
                    "returns": [
                        {
                            "desc": "The x-component of the target.",
                            "name": "x",
                            "rawdesc": "The x-component of the target.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the target.",
                            "name": "y",
                            "rawdesc": "The x-component of the target.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:getTarget()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2108,
                    29
                ],
                "name": "getTarget",
                "rawdesc": "\nGets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:getTarget)",
                "start": [
                    2108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setDampingRatio)\n\n@*param* `ratio` — The new damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2117,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2117,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        },
                        {
                            "desc": "The new damping ratio.",
                            "finish": [
                                2117,
                                41
                            ],
                            "name": "ratio",
                            "rawdesc": "The new damping ratio.",
                            "start": [
                                2117,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setDampingRatio)\n\n@*param* `ratio` — The new damping ratio.",
                    "finish": [
                        2117,
                        46
                    ],
                    "rawdesc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setDampingRatio)",
                    "start": [
                        2117,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:setDampingRatio(ratio: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2117,
                    35
                ],
                "name": "setDampingRatio",
                "rawdesc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setDampingRatio)",
                "start": [
                    2117,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setFrequency)\n\n@*param* `freq` — The new frequency in hertz.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2126,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2126,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        },
                        {
                            "desc": "The new frequency in hertz.",
                            "finish": [
                                2126,
                                37
                            ],
                            "name": "freq",
                            "rawdesc": "The new frequency in hertz.",
                            "start": [
                                2126,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setFrequency)\n\n@*param* `freq` — The new frequency in hertz.",
                    "finish": [
                        2126,
                        42
                    ],
                    "rawdesc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setFrequency)",
                    "start": [
                        2126,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:setFrequency(freq: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2126,
                    32
                ],
                "name": "setFrequency",
                "rawdesc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setFrequency)",
                "start": [
                    2126,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setMaxForce)\n\n@*param* `f` — The max allowed force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2135,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2135,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        },
                        {
                            "desc": "The max allowed force.",
                            "finish": [
                                2135,
                                33
                            ],
                            "name": "f",
                            "rawdesc": "The max allowed force.",
                            "start": [
                                2135,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setMaxForce)\n\n@*param* `f` — The max allowed force.",
                    "finish": [
                        2135,
                        38
                    ],
                    "rawdesc": "\nSets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setMaxForce)",
                    "start": [
                        2135,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:setMaxForce(f: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2135,
                    31
                ],
                "name": "setMaxForce",
                "rawdesc": "\nSets the highest allowed force.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setMaxForce)",
                "start": [
                    2135,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setTarget)\n\n@*param* `x` — The x-component of the target.\n\n@*param* `y` — The y-component of the target.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2145,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nFor controlling objects with the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2145,
                                8
                            ],
                            "type": "self",
                            "view": "love.MouseJoint"
                        },
                        {
                            "desc": "The x-component of the target.",
                            "finish": [
                                2145,
                                31
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the target.",
                            "start": [
                                2145,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the target.",
                            "finish": [
                                2145,
                                34
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the target.",
                            "start": [
                                2145,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setTarget)\n\n@*param* `x` — The x-component of the target.\n\n@*param* `y` — The y-component of the target.",
                    "finish": [
                        2145,
                        39
                    ],
                    "rawdesc": "\nSets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setTarget)",
                    "start": [
                        2145,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.MouseJoint:setTarget(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2145,
                    29
                ],
                "name": "setTarget",
                "rawdesc": "\nSets the target point.\n\n\n[Open in Browser](https://love2d.org/wiki/MouseJoint:setTarget)",
                "start": [
                    2145,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.MouseJoint",
        "type": "type",
        "view": "love.MouseJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    116,
                    21
                ],
                "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                "start": [
                    116,
                    10
                ],
                "type": "doc.class",
                "view": "love.Object",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Object",
        "type": "type",
        "view": "love.Object"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nlove.ParticleInsertMode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                "finish": [
                    3826,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nlove.ParticleInsertMode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                "start": [
                    3814,
                    10
                ],
                "type": "doc.alias",
                "view": "\"bottom\"|\"random\"|\"top\""
            }
        ],
        "fields": [],
        "name": "love.ParticleInsertMode",
        "type": "type",
        "view": "love.ParticleInsertMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            1914,
                            44
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            1914,
                            31
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            1914,
                            57
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            1914,
                            46
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1914,
                    57
                ],
                "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    1914,
                    10
                ],
                "type": "doc.class",
                "view": "love.ParticleSystem",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates an identical copy of the ParticleSystem in the stopped state.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:clone)\n\n@*return* `particlesystem` — The new identical copy of this ParticleSystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1924,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1924,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nCreates an identical copy of the ParticleSystem in the stopped state.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:clone)\n\n@*return* `particlesystem` — The new identical copy of this ParticleSystem.",
                    "finish": [
                        1924,
                        35
                    ],
                    "rawdesc": "\nCreates an identical copy of the ParticleSystem in the stopped state.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:clone)",
                    "returns": [
                        {
                            "desc": "The new identical copy of this ParticleSystem.",
                            "name": "particlesystem",
                            "rawdesc": "The new identical copy of this ParticleSystem.",
                            "type": "function.return",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "start": [
                        1924,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:clone()\n  -> particlesystem: love.ParticleSystem"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1924,
                    29
                ],
                "name": "clone",
                "rawdesc": "\nCreates an identical copy of the ParticleSystem in the stopped state.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:clone)",
                "start": [
                    1924,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEmits a burst of particles from the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:emit)\n\n@*param* `numparticles` — The amount of particles to emit. The number of emitted particles will be truncated if the particle system's max buffer size is reached.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1933,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1933,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The amount of particles to emit. The number of emitted particles will be truncated if the particle system's max buffer size is reached.",
                            "finish": [
                                1933,
                                41
                            ],
                            "name": "numparticles",
                            "rawdesc": "The amount of particles to emit. The number of emitted particles will be truncated if the particle system's max buffer size is reached.",
                            "start": [
                                1933,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nEmits a burst of particles from the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:emit)\n\n@*param* `numparticles` — The amount of particles to emit. The number of emitted particles will be truncated if the particle system's max buffer size is reached.",
                    "finish": [
                        1933,
                        46
                    ],
                    "rawdesc": "\nEmits a burst of particles from the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:emit)",
                    "start": [
                        1933,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:emit(numparticles: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1933,
                    28
                ],
                "name": "emit",
                "rawdesc": "\nEmits a burst of particles from the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:emit)",
                "start": [
                    1933,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum number of particles the ParticleSystem can have at once.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getBufferSize)\n\n@*return* `size` — The maximum number of particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1942,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1942,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the maximum number of particles the ParticleSystem can have at once.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getBufferSize)\n\n@*return* `size` — The maximum number of particles.",
                    "finish": [
                        1942,
                        43
                    ],
                    "rawdesc": "\nGets the maximum number of particles the ParticleSystem can have at once.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getBufferSize)",
                    "returns": [
                        {
                            "desc": "The maximum number of particles.",
                            "name": "size",
                            "rawdesc": "The maximum number of particles.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1942,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getBufferSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1942,
                    37
                ],
                "name": "getBufferSize",
                "rawdesc": "\nGets the maximum number of particles the ParticleSystem can have at once.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getBufferSize)",
                "start": [
                    1942,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the series of colors applied to the particle sprite.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getColors)\n\n@*return* `r1` — First color, red component (0-1).\n\n@*return* `g1` — First color, green component (0-1).\n\n@*return* `b1` — First color, blue component (0-1).\n\n@*return* `a1` — First color, alpha component (0-1).\n\n@*return* `r2` — Second color, red component (0-1).\n\n@*return* `g2` — Second color, green component (0-1).\n\n@*return* `b2` — Second color, blue component (0-1).\n\n@*return* `a2` — Second color, alpha component (0-1).\n\n@*return* `r8` — Eighth color, red component (0-1).\n\n@*return* `g8` — Eighth color, green component (0-1).\n\n@*return* `b8` — Eighth color, blue component (0-1).\n\n@*return* `a8` — Eighth color, alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1964,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1964,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the series of colors applied to the particle sprite.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getColors)\n\n@*return* `r1` — First color, red component (0-1).\n\n@*return* `g1` — First color, green component (0-1).\n\n@*return* `b1` — First color, blue component (0-1).\n\n@*return* `a1` — First color, alpha component (0-1).\n\n@*return* `r2` — Second color, red component (0-1).\n\n@*return* `g2` — Second color, green component (0-1).\n\n@*return* `b2` — Second color, blue component (0-1).\n\n@*return* `a2` — Second color, alpha component (0-1).\n\n@*return* `r8` — Eighth color, red component (0-1).\n\n@*return* `g8` — Eighth color, green component (0-1).\n\n@*return* `b8` — Eighth color, blue component (0-1).\n\n@*return* `a8` — Eighth color, alpha component (0-1).",
                    "finish": [
                        1964,
                        39
                    ],
                    "rawdesc": "\nGets the series of colors applied to the particle sprite.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getColors)",
                    "returns": [
                        {
                            "desc": "First color, red component (0-1).",
                            "name": "r1",
                            "rawdesc": "First color, red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "First color, green component (0-1).",
                            "name": "g1",
                            "rawdesc": "First color, green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "First color, blue component (0-1).",
                            "name": "b1",
                            "rawdesc": "First color, blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "First color, alpha component (0-1).",
                            "name": "a1",
                            "rawdesc": "First color, alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Second color, red component (0-1).",
                            "name": "r2",
                            "rawdesc": "Second color, red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Second color, green component (0-1).",
                            "name": "g2",
                            "rawdesc": "Second color, green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Second color, blue component (0-1).",
                            "name": "b2",
                            "rawdesc": "Second color, blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Second color, alpha component (0-1).",
                            "name": "a2",
                            "rawdesc": "Second color, alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Eighth color, red component (0-1).",
                            "name": "r8",
                            "rawdesc": "Eighth color, red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Eighth color, green component (0-1).",
                            "name": "g8",
                            "rawdesc": "Eighth color, green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Eighth color, blue component (0-1).",
                            "name": "b8",
                            "rawdesc": "Eighth color, blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Eighth color, alpha component (0-1).",
                            "name": "a8",
                            "rawdesc": "Eighth color, alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1964,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getColors()\n  -> r1: number\n  2. g1: number\n  3. b1: number\n  4. a1: number\n  5. r2: number\n  6. g2: number\n  7. b2: number\n  8. a2: number\n  9. r8: number\n 10. g8: number\n 11. b8: number\n 12. a8: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1964,
                    33
                ],
                "name": "getColors",
                "rawdesc": "\nGets the series of colors applied to the particle sprite.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getColors)",
                "start": [
                    1964,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of particles that are currently in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getCount)\n\n@*return* `count` — The current number of live particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1973,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1973,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the number of particles that are currently in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getCount)\n\n@*return* `count` — The current number of live particles.",
                    "finish": [
                        1973,
                        38
                    ],
                    "rawdesc": "\nGets the number of particles that are currently in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getCount)",
                    "returns": [
                        {
                            "desc": "The current number of live particles.",
                            "name": "count",
                            "rawdesc": "The current number of live particles.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1973,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1973,
                    32
                ],
                "name": "getCount",
                "rawdesc": "\nGets the number of particles that are currently in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getCount)",
                "start": [
                    1973,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the direction of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getDirection)\n\n@*return* `direction` — The direction of the emitter (radians).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1982,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1982,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the direction of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getDirection)\n\n@*return* `direction` — The direction of the emitter (radians).",
                    "finish": [
                        1982,
                        42
                    ],
                    "rawdesc": "\nGets the direction of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getDirection)",
                    "returns": [
                        {
                            "desc": "The direction of the emitter (radians).",
                            "name": "direction",
                            "rawdesc": "The direction of the emitter (radians).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1982,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getDirection()\n  -> direction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1982,
                    36
                ],
                "name": "getDirection",
                "rawdesc": "\nGets the direction of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getDirection)",
                "start": [
                    1982,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the area-based spawn parameters for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionArea)\n\n@*return* `distribution` — The type of distribution for new particles.\n\n@*return* `dx` — The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.\n\n@*return* `dy` — The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.\n\n@*return* `angle` — The angle in radians of the emission area.\n\n@*return* `directionRelativeToCenter` — True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the area-based spawn parameters for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionArea)\n\n@*return* `distribution` — The type of distribution for new particles.\n\n@*return* `dx` — The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.\n\n@*return* `dy` — The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.\n\n@*return* `angle` — The angle in radians of the emission area.\n\n@*return* `directionRelativeToCenter` — True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                    "finish": [
                        1995,
                        45
                    ],
                    "rawdesc": "\nGets the area-based spawn parameters for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionArea)\n\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                    "returns": [
                        {
                            "desc": "The type of distribution for new particles.",
                            "name": "distribution",
                            "rawdesc": "The type of distribution for new particles.",
                            "type": "function.return",
                            "view": "\"borderellipse\"|\"borderrectangle\"|\"ellipse\"|\"none\"|\"normal\"...(+1)"
                        },
                        {
                            "desc": "The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.",
                            "name": "dx",
                            "rawdesc": "The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.",
                            "name": "dy",
                            "rawdesc": "The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The angle in radians of the emission area.",
                            "name": "angle",
                            "rawdesc": "The angle in radians of the emission area.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.",
                            "name": "directionRelativeToCenter",
                            "rawdesc": "True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getEmissionArea()\n  -> distribution: \"borderellipse\"|\"borderrectangle\"|\"ellipse\"|\"none\"|\"normal\"...(+1)\n  2. dx: number\n  3. dy: number\n  4. angle: number\n  5. directionRelativeToCenter: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1995,
                    39
                ],
                "name": "getEmissionArea",
                "rawdesc": "\nGets the area-based spawn parameters for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionArea)\n\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionRate)\n\n@*return* `rate` — The amount of particles per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionRate)\n\n@*return* `rate` — The amount of particles per second.",
                    "finish": [
                        2004,
                        45
                    ],
                    "rawdesc": "\nGets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionRate)",
                    "returns": [
                        {
                            "desc": "The amount of particles per second.",
                            "name": "rate",
                            "rawdesc": "The amount of particles per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getEmissionRate()\n  -> rate: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2004,
                    39
                ],
                "name": "getEmissionRate",
                "rawdesc": "\nGets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmissionRate)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets how long the particle system will emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmitterLifetime)\n\n@*return* `life` — The lifetime of the emitter (in seconds).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2013,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2013,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets how long the particle system will emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmitterLifetime)\n\n@*return* `life` — The lifetime of the emitter (in seconds).",
                    "finish": [
                        2013,
                        48
                    ],
                    "rawdesc": "\nGets how long the particle system will emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmitterLifetime)",
                    "returns": [
                        {
                            "desc": "The lifetime of the emitter (in seconds).",
                            "name": "life",
                            "rawdesc": "The lifetime of the emitter (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2013,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getEmitterLifetime()\n  -> life: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2013,
                    42
                ],
                "name": "getEmitterLifetime",
                "rawdesc": "\nGets how long the particle system will emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getEmitterLifetime)",
                "start": [
                    2013,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the mode used when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getInsertMode)\n\n@*return* `mode` — The mode used when the ParticleSystem adds new particles.\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2022,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2022,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the mode used when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getInsertMode)\n\n@*return* `mode` — The mode used when the ParticleSystem adds new particles.\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                    "finish": [
                        2022,
                        43
                    ],
                    "rawdesc": "\nGets the mode used when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getInsertMode)\n\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                    "returns": [
                        {
                            "desc": "The mode used when the ParticleSystem adds new particles.",
                            "name": "mode",
                            "rawdesc": "The mode used when the ParticleSystem adds new particles.",
                            "type": "function.return",
                            "view": "\"bottom\"|\"random\"|\"top\""
                        }
                    ],
                    "start": [
                        2022,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getInsertMode()\n  -> mode: \"bottom\"|\"random\"|\"top\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2022,
                    37
                ],
                "name": "getInsertMode",
                "rawdesc": "\nGets the mode used when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getInsertMode)\n\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                "start": [
                    2022,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearAcceleration)\n\n@*return* `xmin` — The minimum acceleration along the x axis.\n\n@*return* `ymin` — The minimum acceleration along the y axis.\n\n@*return* `xmax` — The maximum acceleration along the x axis.\n\n@*return* `ymax` — The maximum acceleration along the y axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2036,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2036,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearAcceleration)\n\n@*return* `xmin` — The minimum acceleration along the x axis.\n\n@*return* `ymin` — The minimum acceleration along the y axis.\n\n@*return* `xmax` — The maximum acceleration along the x axis.\n\n@*return* `ymax` — The maximum acceleration along the y axis.",
                    "finish": [
                        2036,
                        51
                    ],
                    "rawdesc": "\nGets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearAcceleration)",
                    "returns": [
                        {
                            "desc": "The minimum acceleration along the x axis.",
                            "name": "xmin",
                            "rawdesc": "The minimum acceleration along the x axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The minimum acceleration along the y axis.",
                            "name": "ymin",
                            "rawdesc": "The minimum acceleration along the y axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration along the x axis.",
                            "name": "xmax",
                            "rawdesc": "The maximum acceleration along the x axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration along the y axis.",
                            "name": "ymax",
                            "rawdesc": "The maximum acceleration along the y axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2036,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getLinearAcceleration()\n  -> xmin: number\n  2. ymin: number\n  3. xmax: number\n  4. ymax: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2036,
                    45
                ],
                "name": "getLinearAcceleration",
                "rawdesc": "\nGets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearAcceleration)",
                "start": [
                    2036,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearDamping)\n\n@*return* `min` — The minimum amount of linear damping applied to particles.\n\n@*return* `max` — The maximum amount of linear damping applied to particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2046,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2046,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearDamping)\n\n@*return* `min` — The minimum amount of linear damping applied to particles.\n\n@*return* `max` — The maximum amount of linear damping applied to particles.",
                    "finish": [
                        2046,
                        46
                    ],
                    "rawdesc": "\nGets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearDamping)",
                    "returns": [
                        {
                            "desc": "The minimum amount of linear damping applied to particles.",
                            "name": "min",
                            "rawdesc": "The minimum amount of linear damping applied to particles.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum amount of linear damping applied to particles.",
                            "name": "max",
                            "rawdesc": "The maximum amount of linear damping applied to particles.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2046,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getLinearDamping()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2046,
                    40
                ],
                "name": "getLinearDamping",
                "rawdesc": "\nGets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getLinearDamping)",
                "start": [
                    2046,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the particle image's draw offset.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getOffset)\n\n@*return* `ox` — The x coordinate of the particle image's draw offset.\n\n@*return* `oy` — The y coordinate of the particle image's draw offset.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2056,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2056,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the particle image's draw offset.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getOffset)\n\n@*return* `ox` — The x coordinate of the particle image's draw offset.\n\n@*return* `oy` — The y coordinate of the particle image's draw offset.",
                    "finish": [
                        2056,
                        39
                    ],
                    "rawdesc": "\nGets the particle image's draw offset.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getOffset)",
                    "returns": [
                        {
                            "desc": "The x coordinate of the particle image's draw offset.",
                            "name": "ox",
                            "rawdesc": "The x coordinate of the particle image's draw offset.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the particle image's draw offset.",
                            "name": "oy",
                            "rawdesc": "The y coordinate of the particle image's draw offset.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2056,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getOffset()\n  -> ox: number\n  2. oy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2056,
                    33
                ],
                "name": "getOffset",
                "rawdesc": "\nGets the particle image's draw offset.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getOffset)",
                "start": [
                    2056,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getParticleLifetime)\n\n@*return* `min` — The minimum life of the particles (in seconds).\n\n@*return* `max` — The maximum life of the particles (in seconds).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2066,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2066,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getParticleLifetime)\n\n@*return* `min` — The minimum life of the particles (in seconds).\n\n@*return* `max` — The maximum life of the particles (in seconds).",
                    "finish": [
                        2066,
                        49
                    ],
                    "rawdesc": "\nGets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getParticleLifetime)",
                    "returns": [
                        {
                            "desc": "The minimum life of the particles (in seconds).",
                            "name": "min",
                            "rawdesc": "The minimum life of the particles (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum life of the particles (in seconds).",
                            "name": "max",
                            "rawdesc": "The maximum life of the particles (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2066,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getParticleLifetime()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2066,
                    43
                ],
                "name": "getParticleLifetime",
                "rawdesc": "\nGets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getParticleLifetime)",
                "start": [
                    2066,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getPosition)\n\n@*return* `x` — Position along x-axis.\n\n@*return* `y` — Position along y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2076,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2076,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getPosition)\n\n@*return* `x` — Position along x-axis.\n\n@*return* `y` — Position along y-axis.",
                    "finish": [
                        2076,
                        41
                    ],
                    "rawdesc": "\nGets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getPosition)",
                    "returns": [
                        {
                            "desc": "Position along x-axis.",
                            "name": "x",
                            "rawdesc": "Position along x-axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Position along y-axis.",
                            "name": "y",
                            "rawdesc": "Position along y-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2076,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getPosition()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2076,
                    35
                ],
                "name": "getPosition",
                "rawdesc": "\nGets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getPosition)",
                "start": [
                    2076,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the series of Quads used for the particle sprites.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getQuads)\n\n@*return* `quads` — A table containing the Quads used.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2085,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2085,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the series of Quads used for the particle sprites.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getQuads)\n\n@*return* `quads` — A table containing the Quads used.",
                    "finish": [
                        2085,
                        38
                    ],
                    "rawdesc": "\nGets the series of Quads used for the particle sprites.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getQuads)",
                    "returns": [
                        {
                            "desc": "A table containing the Quads used.",
                            "name": "quads",
                            "rawdesc": "A table containing the Quads used.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        2085,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getQuads()\n  -> quads: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2085,
                    32
                ],
                "name": "getQuads",
                "rawdesc": "\nGets the series of Quads used for the particle sprites.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getQuads)",
                "start": [
                    2085,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRadialAcceleration)\n\n@*return* `min` — The minimum acceleration.\n\n@*return* `max` — The maximum acceleration.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2095,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2095,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRadialAcceleration)\n\n@*return* `min` — The minimum acceleration.\n\n@*return* `max` — The maximum acceleration.",
                    "finish": [
                        2095,
                        51
                    ],
                    "rawdesc": "\nGets the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRadialAcceleration)",
                    "returns": [
                        {
                            "desc": "The minimum acceleration.",
                            "name": "min",
                            "rawdesc": "The minimum acceleration.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration.",
                            "name": "max",
                            "rawdesc": "The maximum acceleration.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2095,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getRadialAcceleration()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2095,
                    45
                ],
                "name": "getRadialAcceleration",
                "rawdesc": "\nGets the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRadialAcceleration)",
                "start": [
                    2095,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRotation)\n\n@*return* `min` — The minimum initial angle (radians).\n\n@*return* `max` — The maximum initial angle (radians).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2105,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2105,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRotation)\n\n@*return* `min` — The minimum initial angle (radians).\n\n@*return* `max` — The maximum initial angle (radians).",
                    "finish": [
                        2105,
                        41
                    ],
                    "rawdesc": "\nGets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRotation)",
                    "returns": [
                        {
                            "desc": "The minimum initial angle (radians).",
                            "name": "min",
                            "rawdesc": "The minimum initial angle (radians).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum initial angle (radians).",
                            "name": "max",
                            "rawdesc": "The maximum initial angle (radians).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2105,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getRotation()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2105,
                    35
                ],
                "name": "getRotation",
                "rawdesc": "\nGets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getRotation)",
                "start": [
                    2105,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizeVariation)\n\n@*return* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2114,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2114,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizeVariation)\n\n@*return* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                    "finish": [
                        2114,
                        46
                    ],
                    "rawdesc": "\nGets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizeVariation)",
                    "returns": [
                        {
                            "desc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "name": "variation",
                            "rawdesc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2114,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getSizeVariation()\n  -> variation: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2114,
                    40
                ],
                "name": "getSizeVariation",
                "rawdesc": "\nGets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizeVariation)",
                "start": [
                    2114,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the series of sizes by which the sprite is scaled. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizes)\n\n@*return* `size1` — The first size.\n\n@*return* `size2` — The second size.\n\n@*return* `size8` — The eighth size.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2125,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2125,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the series of sizes by which the sprite is scaled. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizes)\n\n@*return* `size1` — The first size.\n\n@*return* `size2` — The second size.\n\n@*return* `size8` — The eighth size.",
                    "finish": [
                        2125,
                        38
                    ],
                    "rawdesc": "\nGets the series of sizes by which the sprite is scaled. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizes)",
                    "returns": [
                        {
                            "desc": "The first size.",
                            "name": "size1",
                            "rawdesc": "The first size.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The second size.",
                            "name": "size2",
                            "rawdesc": "The second size.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The eighth size.",
                            "name": "size8",
                            "rawdesc": "The eighth size.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2125,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getSizes()\n  -> size1: number\n  2. size2: number\n  3. size8: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2125,
                    32
                ],
                "name": "getSizes",
                "rawdesc": "\nGets the series of sizes by which the sprite is scaled. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSizes)",
                "start": [
                    2125,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpeed)\n\n@*return* `min` — The minimum linear speed of the particles.\n\n@*return* `max` — The maximum linear speed of the particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2135,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2135,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpeed)\n\n@*return* `min` — The minimum linear speed of the particles.\n\n@*return* `max` — The maximum linear speed of the particles.",
                    "finish": [
                        2135,
                        38
                    ],
                    "rawdesc": "\nGets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpeed)",
                    "returns": [
                        {
                            "desc": "The minimum linear speed of the particles.",
                            "name": "min",
                            "rawdesc": "The minimum linear speed of the particles.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum linear speed of the particles.",
                            "name": "max",
                            "rawdesc": "The maximum linear speed of the particles.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2135,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getSpeed()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2135,
                    32
                ],
                "name": "getSpeed",
                "rawdesc": "\nGets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpeed)",
                "start": [
                    2135,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpin)\n\n@*return* `min` — The minimum spin (radians per second).\n\n@*return* `max` — The maximum spin (radians per second).\n\n@*return* `variation` — The degree of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2146,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2146,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpin)\n\n@*return* `min` — The minimum spin (radians per second).\n\n@*return* `max` — The maximum spin (radians per second).\n\n@*return* `variation` — The degree of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                    "finish": [
                        2146,
                        37
                    ],
                    "rawdesc": "\nGets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpin)",
                    "returns": [
                        {
                            "desc": "The minimum spin (radians per second).",
                            "name": "min",
                            "rawdesc": "The minimum spin (radians per second).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum spin (radians per second).",
                            "name": "max",
                            "rawdesc": "The maximum spin (radians per second).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The degree of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "name": "variation",
                            "rawdesc": "The degree of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2146,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getSpin()\n  -> min: number\n  2. max: number\n  3. variation: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2146,
                    31
                ],
                "name": "getSpin",
                "rawdesc": "\nGets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpin)",
                "start": [
                    2146,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpinVariation)\n\n@*return* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2155,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2155,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpinVariation)\n\n@*return* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                    "finish": [
                        2155,
                        46
                    ],
                    "rawdesc": "\nGets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpinVariation)",
                    "returns": [
                        {
                            "desc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "name": "variation",
                            "rawdesc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2155,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getSpinVariation()\n  -> variation: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2155,
                    40
                ],
                "name": "getSpinVariation",
                "rawdesc": "\nGets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpinVariation)",
                "start": [
                    2155,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of directional spread of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpread)\n\n@*return* `spread` — The spread of the emitter (radians).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2164,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2164,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the amount of directional spread of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpread)\n\n@*return* `spread` — The spread of the emitter (radians).",
                    "finish": [
                        2164,
                        39
                    ],
                    "rawdesc": "\nGets the amount of directional spread of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpread)",
                    "returns": [
                        {
                            "desc": "The spread of the emitter (radians).",
                            "name": "spread",
                            "rawdesc": "The spread of the emitter (radians).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2164,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getSpread()\n  -> spread: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2164,
                    33
                ],
                "name": "getSpread",
                "rawdesc": "\nGets the amount of directional spread of the particle emitter (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getSpread)",
                "start": [
                    2164,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTangentialAcceleration)\n\n@*return* `min` — The minimum acceleration.\n\n@*return* `max` — The maximum acceleration.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2174,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2174,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTangentialAcceleration)\n\n@*return* `min` — The minimum acceleration.\n\n@*return* `max` — The maximum acceleration.",
                    "finish": [
                        2174,
                        55
                    ],
                    "rawdesc": "\nGets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTangentialAcceleration)",
                    "returns": [
                        {
                            "desc": "The minimum acceleration.",
                            "name": "min",
                            "rawdesc": "The minimum acceleration.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration.",
                            "name": "max",
                            "rawdesc": "The maximum acceleration.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2174,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getTangentialAcceleration()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2174,
                    49
                ],
                "name": "getTangentialAcceleration",
                "rawdesc": "\nGets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTangentialAcceleration)",
                "start": [
                    2174,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the texture (Image or Canvas) used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTexture)\n\n@*return* `texture` — The Image or Canvas used for the particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2183,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2183,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets the texture (Image or Canvas) used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTexture)\n\n@*return* `texture` — The Image or Canvas used for the particles.",
                    "finish": [
                        2183,
                        40
                    ],
                    "rawdesc": "\nGets the texture (Image or Canvas) used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTexture)",
                    "returns": [
                        {
                            "desc": "The Image or Canvas used for the particles.",
                            "name": "texture",
                            "rawdesc": "The Image or Canvas used for the particles.",
                            "type": "function.return",
                            "view": "love.Texture"
                        }
                    ],
                    "start": [
                        2183,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:getTexture()\n  -> texture: love.Texture"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2183,
                    34
                ],
                "name": "getTexture",
                "rawdesc": "\nGets the texture (Image or Canvas) used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:getTexture)",
                "start": [
                    2183,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:hasRelativeRotation)\n\n@*return* `enable` — True if relative particle rotation is enabled, false if it's disabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2192,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2192,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nGets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:hasRelativeRotation)\n\n@*return* `enable` — True if relative particle rotation is enabled, false if it's disabled.",
                    "finish": [
                        2192,
                        49
                    ],
                    "rawdesc": "\nGets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:hasRelativeRotation)",
                    "returns": [
                        {
                            "desc": "True if relative particle rotation is enabled, false if it's disabled.",
                            "name": "enable",
                            "rawdesc": "True if relative particle rotation is enabled, false if it's disabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2192,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:hasRelativeRotation()\n  -> enable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2192,
                    43
                ],
                "name": "hasRelativeRotation",
                "rawdesc": "\nGets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:hasRelativeRotation)",
                "start": [
                    2192,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the particle system is actively emitting particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isActive)\n\n@*return* `active` — True if system is active, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2201,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2201,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nChecks whether the particle system is actively emitting particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isActive)\n\n@*return* `active` — True if system is active, false otherwise.",
                    "finish": [
                        2201,
                        38
                    ],
                    "rawdesc": "\nChecks whether the particle system is actively emitting particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isActive)",
                    "returns": [
                        {
                            "desc": "True if system is active, false otherwise.",
                            "name": "active",
                            "rawdesc": "True if system is active, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2201,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:isActive()\n  -> active: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2201,
                    32
                ],
                "name": "isActive",
                "rawdesc": "\nChecks whether the particle system is actively emitting particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isActive)",
                "start": [
                    2201,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the particle system is paused.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isPaused)\n\n@*return* `paused` — True if system is paused, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2210,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2210,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nChecks whether the particle system is paused.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isPaused)\n\n@*return* `paused` — True if system is paused, false otherwise.",
                    "finish": [
                        2210,
                        38
                    ],
                    "rawdesc": "\nChecks whether the particle system is paused.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isPaused)",
                    "returns": [
                        {
                            "desc": "True if system is paused, false otherwise.",
                            "name": "paused",
                            "rawdesc": "True if system is paused, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2210,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:isPaused()\n  -> paused: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2210,
                    32
                ],
                "name": "isPaused",
                "rawdesc": "\nChecks whether the particle system is paused.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isPaused)",
                "start": [
                    2210,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the particle system is stopped.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isStopped)\n\n@*return* `stopped` — True if system is stopped, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2219,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2219,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nChecks whether the particle system is stopped.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isStopped)\n\n@*return* `stopped` — True if system is stopped, false otherwise.",
                    "finish": [
                        2219,
                        39
                    ],
                    "rawdesc": "\nChecks whether the particle system is stopped.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isStopped)",
                    "returns": [
                        {
                            "desc": "True if system is stopped, false otherwise.",
                            "name": "stopped",
                            "rawdesc": "True if system is stopped, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2219,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:isStopped()\n  -> stopped: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2219,
                    33
                ],
                "name": "isStopped",
                "rawdesc": "\nChecks whether the particle system is stopped.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:isStopped)",
                "start": [
                    2219,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMoves the position of the emitter. This results in smoother particle spawning behaviour than if ParticleSystem:setPosition is used every frame.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:moveTo)\n\n@*param* `x` — Position along x-axis.\n\n@*param* `y` — Position along y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2229,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2229,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "Position along x-axis.",
                            "finish": [
                                2229,
                                32
                            ],
                            "name": "x",
                            "rawdesc": "Position along x-axis.",
                            "start": [
                                2229,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Position along y-axis.",
                            "finish": [
                                2229,
                                35
                            ],
                            "name": "y",
                            "rawdesc": "Position along y-axis.",
                            "start": [
                                2229,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nMoves the position of the emitter. This results in smoother particle spawning behaviour than if ParticleSystem:setPosition is used every frame.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:moveTo)\n\n@*param* `x` — Position along x-axis.\n\n@*param* `y` — Position along y-axis.",
                    "finish": [
                        2229,
                        40
                    ],
                    "rawdesc": "\nMoves the position of the emitter. This results in smoother particle spawning behaviour than if ParticleSystem:setPosition is used every frame.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:moveTo)",
                    "start": [
                        2229,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:moveTo(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2229,
                    30
                ],
                "name": "moveTo",
                "rawdesc": "\nMoves the position of the emitter. This results in smoother particle spawning behaviour than if ParticleSystem:setPosition is used every frame.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:moveTo)",
                "start": [
                    2229,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:pause)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2237,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2237,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nPauses the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:pause)",
                    "finish": [
                        2237,
                        35
                    ],
                    "rawdesc": "\nPauses the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:pause)",
                    "start": [
                        2237,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:pause()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2237,
                    29
                ],
                "name": "pause",
                "rawdesc": "\nPauses the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:pause)",
                "start": [
                    2237,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the particle emitter, removing any existing particles and resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:reset)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2245,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2245,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nResets the particle emitter, removing any existing particles and resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:reset)",
                    "finish": [
                        2245,
                        35
                    ],
                    "rawdesc": "\nResets the particle emitter, removing any existing particles and resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:reset)",
                    "start": [
                        2245,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:reset()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2245,
                    29
                ],
                "name": "reset",
                "rawdesc": "\nResets the particle emitter, removing any existing particles and resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:reset)",
                "start": [
                    2245,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the size of the buffer (the max allowed amount of particles in the system).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setBufferSize)\n\n@*param* `size` — The buffer size.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2254,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2254,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The buffer size.",
                            "finish": [
                                2254,
                                42
                            ],
                            "name": "size",
                            "rawdesc": "The buffer size.",
                            "start": [
                                2254,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the size of the buffer (the max allowed amount of particles in the system).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setBufferSize)\n\n@*param* `size` — The buffer size.",
                    "finish": [
                        2254,
                        47
                    ],
                    "rawdesc": "\nSets the size of the buffer (the max allowed amount of particles in the system).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setBufferSize)",
                    "start": [
                        2254,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setBufferSize(size: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2254,
                    37
                ],
                "name": "setBufferSize",
                "rawdesc": "\nSets the size of the buffer (the max allowed amount of particles in the system).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setBufferSize)",
                "start": [
                    2254,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a series of colors to apply to the particle sprite. The particle system will interpolate between each color evenly over the particle's lifetime.\n\nArguments can be passed in groups of four, representing the components of the desired RGBA value, or as tables of RGBA component values, with a default alpha value of 1 if only three values are given. At least one color must be specified. A maximum of eight may be used.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setColors)\n\n\n---\n\n@*param* `r1` — First color, red component (0-1).\n\n@*param* `g1` — First color, green component (0-1).\n\n@*param* `b1` — First color, blue component (0-1).\n\n@*param* `a1` — First color, alpha component (0-1).\n\n@*param* `r2` — Second color, red component (0-1).\n\n@*param* `g2` — Second color, green component (0-1).\n\n@*param* `b2` — Second color, blue component (0-1).\n\n@*param* `a2` — Second color, alpha component (0-1).\n\n@*param* `r8` — Eighth color, red component (0-1).\n\n@*param* `g8` — Eighth color, green component (0-1).\n\n@*param* `b8` — Eighth color, blue component (0-1).\n\n@*param* `a8` — Eighth color, alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2279,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2279,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "First color, red component (0-1).",
                            "finish": [
                                2279,
                                36
                            ],
                            "name": "r1",
                            "rawdesc": "First color, red component (0-1).",
                            "start": [
                                2279,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "First color, green component (0-1).",
                            "finish": [
                                2279,
                                40
                            ],
                            "name": "g1",
                            "rawdesc": "First color, green component (0-1).",
                            "start": [
                                2279,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "First color, blue component (0-1).",
                            "finish": [
                                2279,
                                44
                            ],
                            "name": "b1",
                            "rawdesc": "First color, blue component (0-1).",
                            "start": [
                                2279,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "First color, alpha component (0-1).",
                            "finish": [
                                2279,
                                48
                            ],
                            "name": "a1",
                            "rawdesc": "First color, alpha component (0-1).",
                            "start": [
                                2279,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Second color, red component (0-1).",
                            "finish": [
                                2279,
                                52
                            ],
                            "name": "r2",
                            "rawdesc": "Second color, red component (0-1).",
                            "start": [
                                2279,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Second color, green component (0-1).",
                            "finish": [
                                2279,
                                56
                            ],
                            "name": "g2",
                            "rawdesc": "Second color, green component (0-1).",
                            "start": [
                                2279,
                                54
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Second color, blue component (0-1).",
                            "finish": [
                                2279,
                                60
                            ],
                            "name": "b2",
                            "rawdesc": "Second color, blue component (0-1).",
                            "start": [
                                2279,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Second color, alpha component (0-1).",
                            "finish": [
                                2279,
                                64
                            ],
                            "name": "a2",
                            "rawdesc": "Second color, alpha component (0-1).",
                            "start": [
                                2279,
                                62
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Eighth color, red component (0-1).",
                            "finish": [
                                2279,
                                68
                            ],
                            "name": "r8",
                            "rawdesc": "Eighth color, red component (0-1).",
                            "start": [
                                2279,
                                66
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Eighth color, green component (0-1).",
                            "finish": [
                                2279,
                                72
                            ],
                            "name": "g8",
                            "rawdesc": "Eighth color, green component (0-1).",
                            "start": [
                                2279,
                                70
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Eighth color, blue component (0-1).",
                            "finish": [
                                2279,
                                76
                            ],
                            "name": "b8",
                            "rawdesc": "Eighth color, blue component (0-1).",
                            "start": [
                                2279,
                                74
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Eighth color, alpha component (0-1).",
                            "finish": [
                                2279,
                                80
                            ],
                            "name": "a8",
                            "rawdesc": "Eighth color, alpha component (0-1).",
                            "start": [
                                2279,
                                78
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets a series of colors to apply to the particle sprite. The particle system will interpolate between each color evenly over the particle's lifetime.\n\nArguments can be passed in groups of four, representing the components of the desired RGBA value, or as tables of RGBA component values, with a default alpha value of 1 if only three values are given. At least one color must be specified. A maximum of eight may be used.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setColors)\n\n\n---\n\n@*param* `r1` — First color, red component (0-1).\n\n@*param* `g1` — First color, green component (0-1).\n\n@*param* `b1` — First color, blue component (0-1).\n\n@*param* `a1` — First color, alpha component (0-1).\n\n@*param* `r2` — Second color, red component (0-1).\n\n@*param* `g2` — Second color, green component (0-1).\n\n@*param* `b2` — Second color, blue component (0-1).\n\n@*param* `a2` — Second color, alpha component (0-1).\n\n@*param* `r8` — Eighth color, red component (0-1).\n\n@*param* `g8` — Eighth color, green component (0-1).\n\n@*param* `b8` — Eighth color, blue component (0-1).\n\n@*param* `a8` — Eighth color, alpha component (0-1).",
                    "finish": [
                        2279,
                        85
                    ],
                    "rawdesc": "\nSets a series of colors to apply to the particle sprite. The particle system will interpolate between each color evenly over the particle's lifetime.\n\nArguments can be passed in groups of four, representing the components of the desired RGBA value, or as tables of RGBA component values, with a default alpha value of 1 if only three values are given. At least one color must be specified. A maximum of eight may be used.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setColors)",
                    "start": [
                        2279,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setColors(r1: number, g1: number, b1: number, a1?: number, r2?: number, g2?: number, b2?: number, a2?: number, r8?: number, g8?: number, b8?: number, a8?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2279,
                    33
                ],
                "name": "setColors",
                "rawdesc": "\nSets a series of colors to apply to the particle sprite. The particle system will interpolate between each color evenly over the particle's lifetime.\n\nArguments can be passed in groups of four, representing the components of the desired RGBA value, or as tables of RGBA component values, with a default alpha value of 1 if only three values are given. At least one color must be specified. A maximum of eight may be used.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setColors)",
                "start": [
                    2279,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the direction the particles will be emitted in.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setDirection)\n\n@*param* `direction` — The direction of the particles (in radians).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2288,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2288,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The direction of the particles (in radians).",
                            "finish": [
                                2288,
                                46
                            ],
                            "name": "direction",
                            "rawdesc": "The direction of the particles (in radians).",
                            "start": [
                                2288,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the direction the particles will be emitted in.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setDirection)\n\n@*param* `direction` — The direction of the particles (in radians).",
                    "finish": [
                        2288,
                        51
                    ],
                    "rawdesc": "\nSets the direction the particles will be emitted in.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setDirection)",
                    "start": [
                        2288,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setDirection(direction: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2288,
                    36
                ],
                "name": "setDirection",
                "rawdesc": "\nSets the direction the particles will be emitted in.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setDirection)",
                "start": [
                    2288,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets area-based spawn parameters for the particles. Newly created particles will spawn in an area around the emitter based on the parameters to this function.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionArea)\n\n@*param* `distribution` — The type of distribution for new particles.\n\n@*param* `dx` — The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.\n\n@*param* `dy` — The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.\n\n@*param* `angle` — The angle in radians of the emission area.\n\n@*param* `directionRelativeToCenter` — True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2301,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2301,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The type of distribution for new particles.",
                            "finish": [
                                2301,
                                52
                            ],
                            "name": "distribution",
                            "rawdesc": "The type of distribution for new particles.",
                            "start": [
                                2301,
                                40
                            ],
                            "type": "local",
                            "view": "\"borderellipse\"|\"borderrectangle\"|\"ellipse\"|\"none\"|\"normal\"...(+1)"
                        },
                        {
                            "desc": "The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.",
                            "finish": [
                                2301,
                                56
                            ],
                            "name": "dx",
                            "rawdesc": "The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.",
                            "start": [
                                2301,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.",
                            "finish": [
                                2301,
                                60
                            ],
                            "name": "dy",
                            "rawdesc": "The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.",
                            "start": [
                                2301,
                                58
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The angle in radians of the emission area.",
                            "finish": [
                                2301,
                                67
                            ],
                            "name": "angle",
                            "rawdesc": "The angle in radians of the emission area.",
                            "start": [
                                2301,
                                62
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.",
                            "finish": [
                                2301,
                                94
                            ],
                            "name": "directionRelativeToCenter",
                            "rawdesc": "True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.",
                            "start": [
                                2301,
                                69
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nSets area-based spawn parameters for the particles. Newly created particles will spawn in an area around the emitter based on the parameters to this function.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionArea)\n\n@*param* `distribution` — The type of distribution for new particles.\n\n@*param* `dx` — The maximum spawn distance from the emitter along the x-axis for uniform distribution, or the standard deviation along the x-axis for normal distribution.\n\n@*param* `dy` — The maximum spawn distance from the emitter along the y-axis for uniform distribution, or the standard deviation along the y-axis for normal distribution.\n\n@*param* `angle` — The angle in radians of the emission area.\n\n@*param* `directionRelativeToCenter` — True if newly spawned particles will be oriented relative to the center of the emission area, false otherwise.\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                    "finish": [
                        2301,
                        99
                    ],
                    "rawdesc": "\nSets area-based spawn parameters for the particles. Newly created particles will spawn in an area around the emitter based on the parameters to this function.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionArea)\n\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                    "start": [
                        2301,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setEmissionArea(distribution: \"borderellipse\"|\"borderrectangle\"|\"ellipse\"|\"none\"|\"normal\"...(+1), dx: number, dy: number, angle?: number, directionRelativeToCenter?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2301,
                    39
                ],
                "name": "setEmissionArea",
                "rawdesc": "\nSets area-based spawn parameters for the particles. Newly created particles will spawn in an area around the emitter based on the parameters to this function.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionArea)\n\n\n```lua\n-- \n-- Types of particle area spread distribution.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AreaSpreadDistribution)\n-- \ndistribution:\n    | \"uniform\" -- Uniform distribution.\n    | \"normal\" -- Normal (gaussian) distribution.\n    | \"ellipse\" -- Uniform distribution in an ellipse.\n    | \"borderellipse\" -- Distribution in an ellipse with particles spawning at the edges of the ellipse.\n    | \"borderrectangle\" -- Distribution in a rectangle with particles spawning at the edges of the rectangle.\n    | \"none\" -- No distribution - area spread is disabled.\n```",
                "start": [
                    2301,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionRate)\n\n@*param* `rate` — The amount of particles per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2310,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2310,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The amount of particles per second.",
                            "finish": [
                                2310,
                                44
                            ],
                            "name": "rate",
                            "rawdesc": "The amount of particles per second.",
                            "start": [
                                2310,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionRate)\n\n@*param* `rate` — The amount of particles per second.",
                    "finish": [
                        2310,
                        49
                    ],
                    "rawdesc": "\nSets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionRate)",
                    "start": [
                        2310,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setEmissionRate(rate: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2310,
                    39
                ],
                "name": "setEmissionRate",
                "rawdesc": "\nSets the amount of particles emitted per second.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmissionRate)",
                "start": [
                    2310,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets how long the particle system should emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmitterLifetime)\n\n@*param* `life` — The lifetime of the emitter (in seconds).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2319,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2319,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The lifetime of the emitter (in seconds).",
                            "finish": [
                                2319,
                                47
                            ],
                            "name": "life",
                            "rawdesc": "The lifetime of the emitter (in seconds).",
                            "start": [
                                2319,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets how long the particle system should emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmitterLifetime)\n\n@*param* `life` — The lifetime of the emitter (in seconds).",
                    "finish": [
                        2319,
                        52
                    ],
                    "rawdesc": "\nSets how long the particle system should emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmitterLifetime)",
                    "start": [
                        2319,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setEmitterLifetime(life: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2319,
                    42
                ],
                "name": "setEmitterLifetime",
                "rawdesc": "\nSets how long the particle system should emit particles (if -1 then it emits particles forever).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setEmitterLifetime)",
                "start": [
                    2319,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the mode to use when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setInsertMode)\n\n@*param* `mode` — The mode to use when the ParticleSystem adds new particles.\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2328,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2328,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The mode to use when the ParticleSystem adds new particles.",
                            "finish": [
                                2328,
                                42
                            ],
                            "name": "mode",
                            "rawdesc": "The mode to use when the ParticleSystem adds new particles.",
                            "start": [
                                2328,
                                38
                            ],
                            "type": "local",
                            "view": "\"bottom\"|\"random\"|\"top\""
                        }
                    ],
                    "desc": "\nSets the mode to use when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setInsertMode)\n\n@*param* `mode` — The mode to use when the ParticleSystem adds new particles.\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                    "finish": [
                        2328,
                        47
                    ],
                    "rawdesc": "\nSets the mode to use when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setInsertMode)\n\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                    "start": [
                        2328,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setInsertMode(mode: \"bottom\"|\"random\"|\"top\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2328,
                    37
                ],
                "name": "setInsertMode",
                "rawdesc": "\nSets the mode to use when the ParticleSystem adds new particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setInsertMode)\n\n\n```lua\n-- \n-- How newly created particles are added to the ParticleSystem.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ParticleInsertMode)\n-- \nmode:\n    | \"top\" -- Particles are inserted at the top of the ParticleSystem's list of particles.\n    | \"bottom\" -- Particles are inserted at the bottom of the ParticleSystem's list of particles.\n    | \"random\" -- Particles are inserted at random positions in the ParticleSystem's list of particles.\n```",
                "start": [
                    2328,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearAcceleration)\n\n@*param* `xmin` — The minimum acceleration along the x axis.\n\n@*param* `ymin` — The minimum acceleration along the y axis.\n\n@*param* `xmax` — The maximum acceleration along the x axis.\n\n@*param* `ymax` — The maximum acceleration along the y axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2342,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2342,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum acceleration along the x axis.",
                            "finish": [
                                2342,
                                50
                            ],
                            "name": "xmin",
                            "rawdesc": "The minimum acceleration along the x axis.",
                            "start": [
                                2342,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The minimum acceleration along the y axis.",
                            "finish": [
                                2342,
                                56
                            ],
                            "name": "ymin",
                            "rawdesc": "The minimum acceleration along the y axis.",
                            "start": [
                                2342,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration along the x axis.",
                            "finish": [
                                2342,
                                62
                            ],
                            "name": "xmax",
                            "rawdesc": "The maximum acceleration along the x axis.",
                            "start": [
                                2342,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The maximum acceleration along the y axis.",
                            "finish": [
                                2342,
                                68
                            ],
                            "name": "ymax",
                            "rawdesc": "The maximum acceleration along the y axis.",
                            "start": [
                                2342,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearAcceleration)\n\n@*param* `xmin` — The minimum acceleration along the x axis.\n\n@*param* `ymin` — The minimum acceleration along the y axis.\n\n@*param* `xmax` — The maximum acceleration along the x axis.\n\n@*param* `ymax` — The maximum acceleration along the y axis.",
                    "finish": [
                        2342,
                        73
                    ],
                    "rawdesc": "\nSets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearAcceleration)",
                    "start": [
                        2342,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setLinearAcceleration(xmin: number, ymin: number, xmax?: number, ymax?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2342,
                    45
                ],
                "name": "setLinearAcceleration",
                "rawdesc": "\nSets the linear acceleration (acceleration along the x and y axes) for particles.\n\nEvery particle created will accelerate along the x and y axes between xmin,ymin and xmax,ymax.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearAcceleration)",
                "start": [
                    2342,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearDamping)\n\n@*param* `min` — The minimum amount of linear damping applied to particles.\n\n@*param* `max` — The maximum amount of linear damping applied to particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2352,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2352,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum amount of linear damping applied to particles.",
                            "finish": [
                                2352,
                                44
                            ],
                            "name": "min",
                            "rawdesc": "The minimum amount of linear damping applied to particles.",
                            "start": [
                                2352,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum amount of linear damping applied to particles.",
                            "finish": [
                                2352,
                                49
                            ],
                            "name": "max",
                            "rawdesc": "The maximum amount of linear damping applied to particles.",
                            "start": [
                                2352,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearDamping)\n\n@*param* `min` — The minimum amount of linear damping applied to particles.\n\n@*param* `max` — The maximum amount of linear damping applied to particles.",
                    "finish": [
                        2352,
                        54
                    ],
                    "rawdesc": "\nSets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearDamping)",
                    "start": [
                        2352,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setLinearDamping(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2352,
                    40
                ],
                "name": "setLinearDamping",
                "rawdesc": "\nSets the amount of linear damping (constant deceleration) for particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setLinearDamping)",
                "start": [
                    2352,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the offset position which the particle sprite is rotated around.\n\nIf this function is not used, the particles rotate around their center.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setOffset)\n\n@*param* `x` — The x coordinate of the rotation offset.\n\n@*param* `y` — The y coordinate of the rotation offset.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2364,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2364,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The x coordinate of the rotation offset.",
                            "finish": [
                                2364,
                                35
                            ],
                            "name": "x",
                            "rawdesc": "The x coordinate of the rotation offset.",
                            "start": [
                                2364,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the rotation offset.",
                            "finish": [
                                2364,
                                38
                            ],
                            "name": "y",
                            "rawdesc": "The y coordinate of the rotation offset.",
                            "start": [
                                2364,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the offset position which the particle sprite is rotated around.\n\nIf this function is not used, the particles rotate around their center.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setOffset)\n\n@*param* `x` — The x coordinate of the rotation offset.\n\n@*param* `y` — The y coordinate of the rotation offset.",
                    "finish": [
                        2364,
                        43
                    ],
                    "rawdesc": "\nSet the offset position which the particle sprite is rotated around.\n\nIf this function is not used, the particles rotate around their center.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setOffset)",
                    "start": [
                        2364,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setOffset(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2364,
                    33
                ],
                "name": "setOffset",
                "rawdesc": "\nSet the offset position which the particle sprite is rotated around.\n\nIf this function is not used, the particles rotate around their center.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setOffset)",
                "start": [
                    2364,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setParticleLifetime)\n\n@*param* `min` — The minimum life of the particles (in seconds).\n\n@*param* `max` — The maximum life of the particles (in seconds).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2374,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2374,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum life of the particles (in seconds).",
                            "finish": [
                                2374,
                                47
                            ],
                            "name": "min",
                            "rawdesc": "The minimum life of the particles (in seconds).",
                            "start": [
                                2374,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum life of the particles (in seconds).",
                            "finish": [
                                2374,
                                52
                            ],
                            "name": "max",
                            "rawdesc": "The maximum life of the particles (in seconds).",
                            "start": [
                                2374,
                                49
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setParticleLifetime)\n\n@*param* `min` — The minimum life of the particles (in seconds).\n\n@*param* `max` — The maximum life of the particles (in seconds).",
                    "finish": [
                        2374,
                        57
                    ],
                    "rawdesc": "\nSets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setParticleLifetime)",
                    "start": [
                        2374,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setParticleLifetime(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2374,
                    43
                ],
                "name": "setParticleLifetime",
                "rawdesc": "\nSets the lifetime of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setParticleLifetime)",
                "start": [
                    2374,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setPosition)\n\n@*param* `x` — Position along x-axis.\n\n@*param* `y` — Position along y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2384,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2384,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "Position along x-axis.",
                            "finish": [
                                2384,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "Position along x-axis.",
                            "start": [
                                2384,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Position along y-axis.",
                            "finish": [
                                2384,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "Position along y-axis.",
                            "start": [
                                2384,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setPosition)\n\n@*param* `x` — Position along x-axis.\n\n@*param* `y` — Position along y-axis.",
                    "finish": [
                        2384,
                        45
                    ],
                    "rawdesc": "\nSets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setPosition)",
                    "start": [
                        2384,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setPosition(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2384,
                    35
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the position of the emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setPosition)",
                "start": [
                    2384,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a series of Quads to use for the particle sprites. Particles will choose a Quad from the list based on the particle's current lifetime, allowing for the use of animated sprite sheets with ParticleSystems.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setQuads)\n\n\n---\n\n@*param* `quad1` — The first Quad to use.\n\n@*param* `quad2` — The second Quad to use.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2395,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2395,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The first Quad to use.",
                            "finish": [
                                2395,
                                38
                            ],
                            "name": "quad1",
                            "rawdesc": "The first Quad to use.",
                            "start": [
                                2395,
                                33
                            ],
                            "type": "local",
                            "view": "love.Quad"
                        },
                        {
                            "desc": "The second Quad to use.",
                            "finish": [
                                2395,
                                45
                            ],
                            "name": "quad2",
                            "rawdesc": "The second Quad to use.",
                            "start": [
                                2395,
                                40
                            ],
                            "type": "local",
                            "view": "love.Quad"
                        }
                    ],
                    "desc": "\nSets a series of Quads to use for the particle sprites. Particles will choose a Quad from the list based on the particle's current lifetime, allowing for the use of animated sprite sheets with ParticleSystems.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setQuads)\n\n\n---\n\n@*param* `quad1` — The first Quad to use.\n\n@*param* `quad2` — The second Quad to use.",
                    "finish": [
                        2395,
                        50
                    ],
                    "rawdesc": "\nSets a series of Quads to use for the particle sprites. Particles will choose a Quad from the list based on the particle's current lifetime, allowing for the use of animated sprite sheets with ParticleSystems.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setQuads)",
                    "start": [
                        2395,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setQuads(quad1: love.Quad, quad2: love.Quad)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2395,
                    32
                ],
                "name": "setQuads",
                "rawdesc": "\nSets a series of Quads to use for the particle sprites. Particles will choose a Quad from the list based on the particle's current lifetime, allowing for the use of animated sprite sheets with ParticleSystems.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setQuads)",
                "start": [
                    2395,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRadialAcceleration)\n\n@*param* `min` — The minimum acceleration.\n\n@*param* `max` — The maximum acceleration.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2405,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2405,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum acceleration.",
                            "finish": [
                                2405,
                                49
                            ],
                            "name": "min",
                            "rawdesc": "The minimum acceleration.",
                            "start": [
                                2405,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration.",
                            "finish": [
                                2405,
                                54
                            ],
                            "name": "max",
                            "rawdesc": "The maximum acceleration.",
                            "start": [
                                2405,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSet the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRadialAcceleration)\n\n@*param* `min` — The minimum acceleration.\n\n@*param* `max` — The maximum acceleration.",
                    "finish": [
                        2405,
                        59
                    ],
                    "rawdesc": "\nSet the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRadialAcceleration)",
                    "start": [
                        2405,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setRadialAcceleration(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2405,
                    45
                ],
                "name": "setRadialAcceleration",
                "rawdesc": "\nSet the radial acceleration (away from the emitter).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRadialAcceleration)",
                "start": [
                    2405,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRelativeRotation)\n\n@*param* `enable` — True to enable relative particle rotation, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2414,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2414,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "True to enable relative particle rotation, false to disable it.",
                            "finish": [
                                2414,
                                50
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable relative particle rotation, false to disable it.",
                            "start": [
                                2414,
                                44
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRelativeRotation)\n\n@*param* `enable` — True to enable relative particle rotation, false to disable it.",
                    "finish": [
                        2414,
                        55
                    ],
                    "rawdesc": "\nSets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRelativeRotation)",
                    "start": [
                        2414,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setRelativeRotation(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2414,
                    43
                ],
                "name": "setRelativeRotation",
                "rawdesc": "\nSets whether particle angles and rotations are relative to their velocities. If enabled, particles are aligned to the angle of their velocities and rotate relative to that angle.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRelativeRotation)",
                "start": [
                    2414,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRotation)\n\n@*param* `min` — The minimum initial angle (radians).\n\n@*param* `max` — The maximum initial angle (radians).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2424,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2424,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum initial angle (radians).",
                            "finish": [
                                2424,
                                39
                            ],
                            "name": "min",
                            "rawdesc": "The minimum initial angle (radians).",
                            "start": [
                                2424,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum initial angle (radians).",
                            "finish": [
                                2424,
                                44
                            ],
                            "name": "max",
                            "rawdesc": "The maximum initial angle (radians).",
                            "start": [
                                2424,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRotation)\n\n@*param* `min` — The minimum initial angle (radians).\n\n@*param* `max` — The maximum initial angle (radians).",
                    "finish": [
                        2424,
                        49
                    ],
                    "rawdesc": "\nSets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRotation)",
                    "start": [
                        2424,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setRotation(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2424,
                    35
                ],
                "name": "setRotation",
                "rawdesc": "\nSets the rotation of the image upon particle creation (in radians).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setRotation)",
                "start": [
                    2424,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizeVariation)\n\n@*param* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2433,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2433,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "finish": [
                                2433,
                                50
                            ],
                            "name": "variation",
                            "rawdesc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "start": [
                                2433,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizeVariation)\n\n@*param* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                    "finish": [
                        2433,
                        55
                    ],
                    "rawdesc": "\nSets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizeVariation)",
                    "start": [
                        2433,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setSizeVariation(variation: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2433,
                    40
                ],
                "name": "setSizeVariation",
                "rawdesc": "\nSets the amount of size variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizeVariation)",
                "start": [
                    2433,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a series of sizes by which to scale a particle sprite. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\nAt least one size must be specified. A maximum of eight may be used.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizes)\n\n@*param* `size1` — The first size.\n\n@*param* `size2` — The second size.\n\n@*param* `size8` — The eighth size.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2446,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2446,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The first size.",
                            "finish": [
                                2446,
                                38
                            ],
                            "name": "size1",
                            "rawdesc": "The first size.",
                            "start": [
                                2446,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The second size.",
                            "finish": [
                                2446,
                                45
                            ],
                            "name": "size2",
                            "rawdesc": "The second size.",
                            "start": [
                                2446,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The eighth size.",
                            "finish": [
                                2446,
                                52
                            ],
                            "name": "size8",
                            "rawdesc": "The eighth size.",
                            "start": [
                                2446,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets a series of sizes by which to scale a particle sprite. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\nAt least one size must be specified. A maximum of eight may be used.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizes)\n\n@*param* `size1` — The first size.\n\n@*param* `size2` — The second size.\n\n@*param* `size8` — The eighth size.",
                    "finish": [
                        2446,
                        57
                    ],
                    "rawdesc": "\nSets a series of sizes by which to scale a particle sprite. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\nAt least one size must be specified. A maximum of eight may be used.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizes)",
                    "start": [
                        2446,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setSizes(size1: number, size2?: number, size8?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2446,
                    32
                ],
                "name": "setSizes",
                "rawdesc": "\nSets a series of sizes by which to scale a particle sprite. 1.0 is normal size. The particle system will interpolate between each size evenly over the particle's lifetime.\n\nAt least one size must be specified. A maximum of eight may be used.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSizes)",
                "start": [
                    2446,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpeed)\n\n@*param* `min` — The minimum linear speed of the particles.\n\n@*param* `max` — The maximum linear speed of the particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2456,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2456,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum linear speed of the particles.",
                            "finish": [
                                2456,
                                36
                            ],
                            "name": "min",
                            "rawdesc": "The minimum linear speed of the particles.",
                            "start": [
                                2456,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum linear speed of the particles.",
                            "finish": [
                                2456,
                                41
                            ],
                            "name": "max",
                            "rawdesc": "The maximum linear speed of the particles.",
                            "start": [
                                2456,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpeed)\n\n@*param* `min` — The minimum linear speed of the particles.\n\n@*param* `max` — The maximum linear speed of the particles.",
                    "finish": [
                        2456,
                        46
                    ],
                    "rawdesc": "\nSets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpeed)",
                    "start": [
                        2456,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setSpeed(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2456,
                    32
                ],
                "name": "setSpeed",
                "rawdesc": "\nSets the speed of the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpeed)",
                "start": [
                    2456,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpin)\n\n@*param* `min` — The minimum spin (radians per second).\n\n@*param* `max` — The maximum spin (radians per second).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2466,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2466,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum spin (radians per second).",
                            "finish": [
                                2466,
                                35
                            ],
                            "name": "min",
                            "rawdesc": "The minimum spin (radians per second).",
                            "start": [
                                2466,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum spin (radians per second).",
                            "finish": [
                                2466,
                                40
                            ],
                            "name": "max",
                            "rawdesc": "The maximum spin (radians per second).",
                            "start": [
                                2466,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpin)\n\n@*param* `min` — The minimum spin (radians per second).\n\n@*param* `max` — The maximum spin (radians per second).",
                    "finish": [
                        2466,
                        45
                    ],
                    "rawdesc": "\nSets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpin)",
                    "start": [
                        2466,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setSpin(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2466,
                    31
                ],
                "name": "setSpin",
                "rawdesc": "\nSets the spin of the sprite.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpin)",
                "start": [
                    2466,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpinVariation)\n\n@*param* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2475,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2475,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "finish": [
                                2475,
                                50
                            ],
                            "name": "variation",
                            "rawdesc": "The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                            "start": [
                                2475,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpinVariation)\n\n@*param* `variation` — The amount of variation (0 meaning no variation and 1 meaning full variation between start and end).",
                    "finish": [
                        2475,
                        55
                    ],
                    "rawdesc": "\nSets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpinVariation)",
                    "start": [
                        2475,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setSpinVariation(variation: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2475,
                    40
                ],
                "name": "setSpinVariation",
                "rawdesc": "\nSets the amount of spin variation (0 meaning no variation and 1 meaning full variation between start and end).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpinVariation)",
                "start": [
                    2475,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the amount of spread for the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpread)\n\n@*param* `spread` — The amount of spread (radians).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2484,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2484,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The amount of spread (radians).",
                            "finish": [
                                2484,
                                40
                            ],
                            "name": "spread",
                            "rawdesc": "The amount of spread (radians).",
                            "start": [
                                2484,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the amount of spread for the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpread)\n\n@*param* `spread` — The amount of spread (radians).",
                    "finish": [
                        2484,
                        45
                    ],
                    "rawdesc": "\nSets the amount of spread for the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpread)",
                    "start": [
                        2484,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setSpread(spread: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2484,
                    33
                ],
                "name": "setSpread",
                "rawdesc": "\nSets the amount of spread for the system.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setSpread)",
                "start": [
                    2484,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTangentialAcceleration)\n\n@*param* `min` — The minimum acceleration.\n\n@*param* `max` — The maximum acceleration.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2494,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2494,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The minimum acceleration.",
                            "finish": [
                                2494,
                                53
                            ],
                            "name": "min",
                            "rawdesc": "The minimum acceleration.",
                            "start": [
                                2494,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum acceleration.",
                            "finish": [
                                2494,
                                58
                            ],
                            "name": "max",
                            "rawdesc": "The maximum acceleration.",
                            "start": [
                                2494,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTangentialAcceleration)\n\n@*param* `min` — The minimum acceleration.\n\n@*param* `max` — The maximum acceleration.",
                    "finish": [
                        2494,
                        63
                    ],
                    "rawdesc": "\nSets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTangentialAcceleration)",
                    "start": [
                        2494,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setTangentialAcceleration(min: number, max?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2494,
                    49
                ],
                "name": "setTangentialAcceleration",
                "rawdesc": "\nSets the tangential acceleration (acceleration perpendicular to the particle's direction).\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTangentialAcceleration)",
                "start": [
                    2494,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the texture (Image or Canvas) to be used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTexture)\n\n@*param* `texture` — An Image or Canvas to use for the particles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2503,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2503,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "An Image or Canvas to use for the particles.",
                            "finish": [
                                2503,
                                42
                            ],
                            "name": "texture",
                            "rawdesc": "An Image or Canvas to use for the particles.",
                            "start": [
                                2503,
                                35
                            ],
                            "type": "local",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nSets the texture (Image or Canvas) to be used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTexture)\n\n@*param* `texture` — An Image or Canvas to use for the particles.",
                    "finish": [
                        2503,
                        47
                    ],
                    "rawdesc": "\nSets the texture (Image or Canvas) to be used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTexture)",
                    "start": [
                        2503,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:setTexture(texture: love.Texture)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2503,
                    34
                ],
                "name": "setTexture",
                "rawdesc": "\nSets the texture (Image or Canvas) to be used for the particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:setTexture)",
                "start": [
                    2503,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:start)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2511,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2511,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nStarts the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:start)",
                    "finish": [
                        2511,
                        35
                    ],
                    "rawdesc": "\nStarts the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:start)",
                    "start": [
                        2511,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:start()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2511,
                    29
                ],
                "name": "start",
                "rawdesc": "\nStarts the particle emitter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:start)",
                "start": [
                    2511,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStops the particle emitter, resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:stop)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2519,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2519,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "desc": "\nStops the particle emitter, resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:stop)",
                    "finish": [
                        2519,
                        34
                    ],
                    "rawdesc": "\nStops the particle emitter, resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:stop)",
                    "start": [
                        2519,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:stop()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2519,
                    28
                ],
                "name": "stop",
                "rawdesc": "\nStops the particle emitter, resetting the lifetime counter.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:stop)",
                "start": [
                    2519,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUpdates the particle system; moving, creating and killing particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:update)\n\n@*param* `dt` — The time (seconds) since last frame.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2528,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA ParticleSystem can be used to create particle effects like fire or smoke.\n\nThe particle system has to be created using update it in the update callback to see any changes in the particles emitted.\n\nThe particle system won't create any particles unless you call setParticleLifetime and setEmissionRate.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2528,
                                8
                            ],
                            "type": "self",
                            "view": "love.ParticleSystem"
                        },
                        {
                            "desc": "The time (seconds) since last frame.",
                            "finish": [
                                2528,
                                33
                            ],
                            "name": "dt",
                            "rawdesc": "The time (seconds) since last frame.",
                            "start": [
                                2528,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nUpdates the particle system; moving, creating and killing particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:update)\n\n@*param* `dt` — The time (seconds) since last frame.",
                    "finish": [
                        2528,
                        38
                    ],
                    "rawdesc": "\nUpdates the particle system; moving, creating and killing particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:update)",
                    "start": [
                        2528,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.ParticleSystem:update(dt: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2528,
                    30
                ],
                "name": "update",
                "rawdesc": "\nUpdates the particle system; moving, creating and killing particles.\n\n\n[Open in Browser](https://love2d.org/wiki/ParticleSystem:update)",
                "start": [
                    2528,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.ParticleSystem",
        "type": "type",
        "view": "love.ParticleSystem"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nlove.PixelFormat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "finish": [
                    694,
                    16
                ],
                "rawdesc": "```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nlove.PixelFormat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    438,
                    10
                ],
                "type": "doc.alias",
                "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
            }
        ],
        "fields": [],
        "name": "love.PixelFormat",
        "type": "type",
        "view": "love.PixelFormat"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA PolygonShape is a convex polygon with up to 8 vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2153,
                            39
                        ],
                        "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2153,
                            29
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Shape"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2153,
                            52
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2153,
                            41
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2153,
                    52
                ],
                "rawdesc": "\nA PolygonShape is a convex polygon with up to 8 vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2153,
                    10
                ],
                "type": "doc.class",
                "view": "love.PolygonShape",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2689,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2689,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2689,
                                29
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2689,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2689,
                                33
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2689,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2689,
                                37
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2689,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child to compute the bounding box of.",
                            "finish": [
                                2689,
                                49
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child to compute the bounding box of.",
                            "start": [
                                2689,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                    "finish": [
                        2689,
                        54
                    ],
                    "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                    "returns": [
                        {
                            "desc": "The x position of the top-left point.",
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2689,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeAABB(tx: number, ty: number, tr: number, childIndex?: number)\n  -> topLeftX: number\n  2. topLeftY: number\n  3. bottomRightX: number\n  4. bottomRightY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2689,
                    26
                ],
                "name": "computeAABB",
                "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                "start": [
                    2689,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2702,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2702,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The shape density.",
                            "finish": [
                                2702,
                                34
                            ],
                            "name": "density",
                            "rawdesc": "The shape density.",
                            "start": [
                                2702,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        2702,
                        39
                    ],
                    "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                    "returns": [
                        {
                            "desc": "The x postition of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y postition of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the shape.",
                            "name": "mass",
                            "rawdesc": "The mass of the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2702,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeMass(density: number)\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2702,
                    26
                ],
                "name": "computeMass",
                "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                "start": [
                    2702,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2711,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2711,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                    "finish": [
                        2711,
                        34
                    ],
                    "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                    "returns": [
                        {
                            "desc": "The number of children.",
                            "name": "count",
                            "rawdesc": "The number of children.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2711,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getChildCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2711,
                    28
                ],
                "name": "getChildCount",
                "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                "start": [
                    2711,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the local coordinates of the polygon's vertices.\n\nThis function has a variable number of return values. It can be used in a nested fashion with love.graphics.polygon.\n\n\n[Open in Browser](https://love2d.org/wiki/PolygonShape:getPoints)\n\n@*return* `x1` — The x-component of the first vertex.\n\n@*return* `y1` — The y-component of the first vertex.\n\n@*return* `x2` — The x-component of the second vertex.\n\n@*return* `y2` — The y-component of the second vertex.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA PolygonShape is a convex polygon with up to 8 vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2168,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA PolygonShape is a convex polygon with up to 8 vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2168,
                                8
                            ],
                            "type": "self",
                            "view": "love.PolygonShape"
                        }
                    ],
                    "desc": "\nGet the local coordinates of the polygon's vertices.\n\nThis function has a variable number of return values. It can be used in a nested fashion with love.graphics.polygon.\n\n\n[Open in Browser](https://love2d.org/wiki/PolygonShape:getPoints)\n\n@*return* `x1` — The x-component of the first vertex.\n\n@*return* `y1` — The y-component of the first vertex.\n\n@*return* `x2` — The x-component of the second vertex.\n\n@*return* `y2` — The y-component of the second vertex.",
                    "finish": [
                        2168,
                        37
                    ],
                    "rawdesc": "\nGet the local coordinates of the polygon's vertices.\n\nThis function has a variable number of return values. It can be used in a nested fashion with love.graphics.polygon.\n\n\n[Open in Browser](https://love2d.org/wiki/PolygonShape:getPoints)",
                    "returns": [
                        {
                            "desc": "The x-component of the first vertex.",
                            "name": "x1",
                            "rawdesc": "The x-component of the first vertex.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the first vertex.",
                            "name": "y1",
                            "rawdesc": "The y-component of the first vertex.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the second vertex.",
                            "name": "x2",
                            "rawdesc": "The x-component of the second vertex.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the second vertex.",
                            "name": "y2",
                            "rawdesc": "The y-component of the second vertex.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2168,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PolygonShape:getPoints()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2168,
                    31
                ],
                "name": "getPoints",
                "rawdesc": "\nGet the local coordinates of the polygon's vertices.\n\nThis function has a variable number of return values. It can be used in a nested fashion with love.graphics.polygon.\n\n\n[Open in Browser](https://love2d.org/wiki/PolygonShape:getPoints)",
                "start": [
                    2168,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2720,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2720,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                    "finish": [
                        2720,
                        30
                    ],
                    "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                    "returns": [
                        {
                            "desc": "The radius of the shape.",
                            "name": "radius",
                            "rawdesc": "The radius of the shape.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2720,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getRadius()\n  -> radius: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2720,
                    24
                ],
                "name": "getRadius",
                "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                "start": [
                    2720,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2731,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2731,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "finish": [
                        2731,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Shape.",
                            "name": "type",
                            "rawdesc": "The type of the Shape.",
                            "type": "function.return",
                            "view": "\"chain\"|\"circle\"|\"edge\"|\"polygon\""
                        }
                    ],
                    "start": [
                        2731,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getType()\n  -> type: \"chain\"|\"circle\"|\"edge\"|\"polygon\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2731,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "start": [
                    2731,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2759,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2759,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The x position of the input line starting point.",
                            "finish": [
                                2759,
                                25
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the input line starting point.",
                            "start": [
                                2759,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line starting point.",
                            "finish": [
                                2759,
                                29
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the input line starting point.",
                            "start": [
                                2759,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the input line end point.",
                            "finish": [
                                2759,
                                33
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the input line end point.",
                            "start": [
                                2759,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line end point.",
                            "finish": [
                                2759,
                                37
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the input line end point.",
                            "start": [
                                2759,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Ray length parameter.",
                            "finish": [
                                2759,
                                50
                            ],
                            "name": "maxFraction",
                            "rawdesc": "Ray length parameter.",
                            "start": [
                                2759,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2759,
                                54
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2759,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2759,
                                58
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2759,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2759,
                                62
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2759,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child the ray gets cast against.",
                            "finish": [
                                2759,
                                74
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child the ray gets cast against.",
                            "start": [
                                2759,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                    "finish": [
                        2759,
                        79
                    ],
                    "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "name": "xn",
                            "rawdesc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "name": "yn",
                            "rawdesc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "name": "fraction",
                            "rawdesc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2759,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:rayCast(x1: number, y1: number, x2: number, y2: number, maxFraction: number, tx: number, ty: number, tr: number, childIndex?: number)\n  -> xn: number\n  2. yn: number\n  3. fraction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2759,
                    22
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                "start": [
                    2759,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2773,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2773,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "Translates the shape along the x-axis.",
                            "finish": [
                                2773,
                                27
                            ],
                            "name": "tx",
                            "rawdesc": "Translates the shape along the x-axis.",
                            "start": [
                                2773,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Translates the shape along the y-axis.",
                            "finish": [
                                2773,
                                31
                            ],
                            "name": "ty",
                            "rawdesc": "Translates the shape along the y-axis.",
                            "start": [
                                2773,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Rotates the shape.",
                            "finish": [
                                2773,
                                35
                            ],
                            "name": "tr",
                            "rawdesc": "Rotates the shape.",
                            "start": [
                                2773,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the point.",
                            "finish": [
                                2773,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the point.",
                            "start": [
                                2773,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the point.",
                            "finish": [
                                2773,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the point.",
                            "start": [
                                2773,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                    "finish": [
                        2773,
                        46
                    ],
                    "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                    "returns": [
                        {
                            "desc": "True if inside, false if outside",
                            "name": "hit",
                            "rawdesc": "True if inside, false if outside",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2773,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:testPoint(tx: number, ty: number, tr: number, x: number, y: number)\n  -> hit: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2773,
                    24
                ],
                "name": "testPoint",
                "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                "start": [
                    2773,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.PolygonShape",
        "type": "type",
        "view": "love.PolygonShape"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nlove.PowerState:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                "finish": [
                    114,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nlove.PowerState:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                "start": [
                    94,
                    10
                ],
                "type": "doc.alias",
                "view": "\"battery\"|\"charged\"|\"charging\"|\"nobattery\"|\"unknown\""
            }
        ],
        "fields": [],
        "name": "love.PowerState",
        "type": "type",
        "view": "love.PowerState"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2176,
                            41
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2176,
                            31
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2176,
                            54
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2176,
                            43
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2176,
                    54
                ],
                "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2176,
                    10
                ],
                "type": "doc.class",
                "view": "love.PrismaticJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:areLimitsEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2186,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2186,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nChecks whether the limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:areLimitsEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                    "finish": [
                        2186,
                        46
                    ],
                    "rawdesc": "\nChecks whether the limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:areLimitsEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false otherwise.",
                            "name": "enabled",
                            "rawdesc": "True if enabled, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2186,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:areLimitsEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2186,
                    40
                ],
                "name": "areLimitsEnabled",
                "rawdesc": "\nChecks whether the limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:areLimitsEnabled)",
                "start": [
                    2186,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the world-space axis vector of the Prismatic Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getAxis)\n\n@*return* `x` — The x-axis coordinate of the world-space axis vector.\n\n@*return* `y` — The y-axis coordinate of the world-space axis vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2196,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2196,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the world-space axis vector of the Prismatic Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getAxis)\n\n@*return* `x` — The x-axis coordinate of the world-space axis vector.\n\n@*return* `y` — The y-axis coordinate of the world-space axis vector.",
                    "finish": [
                        2196,
                        37
                    ],
                    "rawdesc": "\nGets the world-space axis vector of the Prismatic Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getAxis)",
                    "returns": [
                        {
                            "desc": "The x-axis coordinate of the world-space axis vector.",
                            "name": "x",
                            "rawdesc": "The x-axis coordinate of the world-space axis vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-axis coordinate of the world-space axis vector.",
                            "name": "y",
                            "rawdesc": "The y-axis coordinate of the world-space axis vector.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2196,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getAxis()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2196,
                    31
                ],
                "name": "getAxis",
                "rawdesc": "\nGets the world-space axis vector of the Prismatic Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getAxis)",
                "start": [
                    2196,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointSpeed)\n\n@*return* `s` — Joint angle speed in meters/second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2205,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2205,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointSpeed)\n\n@*return* `s` — Joint angle speed in meters/second.",
                    "finish": [
                        2205,
                        43
                    ],
                    "rawdesc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointSpeed)",
                    "returns": [
                        {
                            "desc": "Joint angle speed in meters/second.",
                            "name": "s",
                            "rawdesc": "Joint angle speed in meters/second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2205,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getJointSpeed()\n  -> s: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2205,
                    37
                ],
                "name": "getJointSpeed",
                "rawdesc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointSpeed)",
                "start": [
                    2205,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointTranslation)\n\n@*return* `t` — Joint translation, usually in meters..",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2214,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2214,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGet the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointTranslation)\n\n@*return* `t` — Joint translation, usually in meters..",
                    "finish": [
                        2214,
                        49
                    ],
                    "rawdesc": "\nGet the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointTranslation)",
                    "returns": [
                        {
                            "desc": "Joint translation, usually in meters..",
                            "name": "t",
                            "rawdesc": "Joint translation, usually in meters..",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2214,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getJointTranslation()\n  -> t: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2214,
                    43
                ],
                "name": "getJointTranslation",
                "rawdesc": "\nGet the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getJointTranslation)",
                "start": [
                    2214,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLimits)\n\n@*return* `lower` — The lower limit, usually in meters.\n\n@*return* `upper` — The upper limit, usually in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2224,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2224,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLimits)\n\n@*return* `lower` — The lower limit, usually in meters.\n\n@*return* `upper` — The upper limit, usually in meters.",
                    "finish": [
                        2224,
                        39
                    ],
                    "rawdesc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLimits)",
                    "returns": [
                        {
                            "desc": "The lower limit, usually in meters.",
                            "name": "lower",
                            "rawdesc": "The lower limit, usually in meters.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The upper limit, usually in meters.",
                            "name": "upper",
                            "rawdesc": "The upper limit, usually in meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2224,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getLimits()\n  -> lower: number\n  2. upper: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2224,
                    33
                ],
                "name": "getLimits",
                "rawdesc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLimits)",
                "start": [
                    2224,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLowerLimit)\n\n@*return* `lower` — The lower limit, usually in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2233,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2233,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLowerLimit)\n\n@*return* `lower` — The lower limit, usually in meters.",
                    "finish": [
                        2233,
                        43
                    ],
                    "rawdesc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLowerLimit)",
                    "returns": [
                        {
                            "desc": "The lower limit, usually in meters.",
                            "name": "lower",
                            "rawdesc": "The lower limit, usually in meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2233,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getLowerLimit()\n  -> lower: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2233,
                    37
                ],
                "name": "getLowerLimit",
                "rawdesc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getLowerLimit)",
                "start": [
                    2233,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMaxMotorForce)\n\n@*return* `f` — The maximum motor force, usually in N.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2242,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2242,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMaxMotorForce)\n\n@*return* `f` — The maximum motor force, usually in N.",
                    "finish": [
                        2242,
                        46
                    ],
                    "rawdesc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMaxMotorForce)",
                    "returns": [
                        {
                            "desc": "The maximum motor force, usually in N.",
                            "name": "f",
                            "rawdesc": "The maximum motor force, usually in N.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2242,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getMaxMotorForce()\n  -> f: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2242,
                    40
                ],
                "name": "getMaxMotorForce",
                "rawdesc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMaxMotorForce)",
                "start": [
                    2242,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorForce)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `force` — The force on the motor in newtons.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2252,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2252,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                2252,
                                43
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                2252,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorForce)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `force` — The force on the motor in newtons.",
                    "finish": [
                        2252,
                        48
                    ],
                    "rawdesc": "\nReturns the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorForce)",
                    "returns": [
                        {
                            "desc": "The force on the motor in newtons.",
                            "name": "force",
                            "rawdesc": "The force on the motor in newtons.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2252,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getMotorForce(invdt: number)\n  -> force: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2252,
                    37
                ],
                "name": "getMotorForce",
                "rawdesc": "\nReturns the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorForce)",
                "start": [
                    2252,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorSpeed)\n\n@*return* `s` — The motor speed, usually in meters per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2261,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2261,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorSpeed)\n\n@*return* `s` — The motor speed, usually in meters per second.",
                    "finish": [
                        2261,
                        43
                    ],
                    "rawdesc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorSpeed)",
                    "returns": [
                        {
                            "desc": "The motor speed, usually in meters per second.",
                            "name": "s",
                            "rawdesc": "The motor speed, usually in meters per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2261,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getMotorSpeed()\n  -> s: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2261,
                    37
                ],
                "name": "getMotorSpeed",
                "rawdesc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getMotorSpeed)",
                "start": [
                    2261,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getReferenceAngle)\n\n@*return* `angle` — The reference angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2270,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2270,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getReferenceAngle)\n\n@*return* `angle` — The reference angle in radians.",
                    "finish": [
                        2270,
                        47
                    ],
                    "rawdesc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getReferenceAngle)",
                    "returns": [
                        {
                            "desc": "The reference angle in radians.",
                            "name": "angle",
                            "rawdesc": "The reference angle in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2270,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getReferenceAngle()\n  -> angle: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2270,
                    41
                ],
                "name": "getReferenceAngle",
                "rawdesc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getReferenceAngle)",
                "start": [
                    2270,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getUpperLimit)\n\n@*return* `upper` — The upper limit, usually in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2279,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2279,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getUpperLimit)\n\n@*return* `upper` — The upper limit, usually in meters.",
                    "finish": [
                        2279,
                        43
                    ],
                    "rawdesc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getUpperLimit)",
                    "returns": [
                        {
                            "desc": "The upper limit, usually in meters.",
                            "name": "upper",
                            "rawdesc": "The upper limit, usually in meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2279,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:getUpperLimit()\n  -> upper: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2279,
                    37
                ],
                "name": "getUpperLimit",
                "rawdesc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:getUpperLimit)",
                "start": [
                    2279,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:isMotorEnabled)\n\n@*return* `enabled` — True if enabled, false if disabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2288,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2288,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:isMotorEnabled)\n\n@*return* `enabled` — True if enabled, false if disabled.",
                    "finish": [
                        2288,
                        44
                    ],
                    "rawdesc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:isMotorEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false if disabled.",
                            "name": "enabled",
                            "rawdesc": "True if enabled, false if disabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2288,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:isMotorEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2288,
                    38
                ],
                "name": "isMotorEnabled",
                "rawdesc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:isMotorEnabled)",
                "start": [
                    2288,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimits)\n\n@*param* `lower` — The lower limit, usually in meters.\n\n@*param* `upper` — The upper limit, usually in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2298,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2298,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "The lower limit, usually in meters.",
                            "finish": [
                                2298,
                                39
                            ],
                            "name": "lower",
                            "rawdesc": "The lower limit, usually in meters.",
                            "start": [
                                2298,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The upper limit, usually in meters.",
                            "finish": [
                                2298,
                                46
                            ],
                            "name": "upper",
                            "rawdesc": "The upper limit, usually in meters.",
                            "start": [
                                2298,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimits)\n\n@*param* `lower` — The lower limit, usually in meters.\n\n@*param* `upper` — The upper limit, usually in meters.",
                    "finish": [
                        2298,
                        51
                    ],
                    "rawdesc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimits)",
                    "start": [
                        2298,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setLimits(lower: number, upper: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2298,
                    33
                ],
                "name": "setLimits",
                "rawdesc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimits)",
                "start": [
                    2298,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimitsEnabled)\n\n@*return* `enable` — True if enabled, false if disabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2307,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2307,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "desc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimitsEnabled)\n\n@*return* `enable` — True if enabled, false if disabled.",
                    "finish": [
                        2307,
                        46
                    ],
                    "rawdesc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimitsEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false if disabled.",
                            "name": "enable",
                            "rawdesc": "True if enabled, false if disabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2307,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setLimitsEnabled()\n  -> enable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2307,
                    40
                ],
                "name": "setLimitsEnabled",
                "rawdesc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLimitsEnabled)",
                "start": [
                    2307,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLowerLimit)\n\n@*param* `lower` — The lower limit, usually in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2316,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2316,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "The lower limit, usually in meters.",
                            "finish": [
                                2316,
                                43
                            ],
                            "name": "lower",
                            "rawdesc": "The lower limit, usually in meters.",
                            "start": [
                                2316,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLowerLimit)\n\n@*param* `lower` — The lower limit, usually in meters.",
                    "finish": [
                        2316,
                        48
                    ],
                    "rawdesc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLowerLimit)",
                    "start": [
                        2316,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setLowerLimit(lower: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2316,
                    37
                ],
                "name": "setLowerLimit",
                "rawdesc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setLowerLimit)",
                "start": [
                    2316,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMaxMotorForce)\n\n@*param* `f` — The maximum motor force, usually in N.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2325,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2325,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "The maximum motor force, usually in N.",
                            "finish": [
                                2325,
                                42
                            ],
                            "name": "f",
                            "rawdesc": "The maximum motor force, usually in N.",
                            "start": [
                                2325,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMaxMotorForce)\n\n@*param* `f` — The maximum motor force, usually in N.",
                    "finish": [
                        2325,
                        47
                    ],
                    "rawdesc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMaxMotorForce)",
                    "start": [
                        2325,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setMaxMotorForce(f: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2325,
                    40
                ],
                "name": "setMaxMotorForce",
                "rawdesc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMaxMotorForce)",
                "start": [
                    2325,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorEnabled)\n\n@*param* `enable` — True to enable, false to disable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2334,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2334,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "True to enable, false to disable.",
                            "finish": [
                                2334,
                                46
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable, false to disable.",
                            "start": [
                                2334,
                                40
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorEnabled)\n\n@*param* `enable` — True to enable, false to disable.",
                    "finish": [
                        2334,
                        51
                    ],
                    "rawdesc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorEnabled)",
                    "start": [
                        2334,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setMotorEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2334,
                    39
                ],
                "name": "setMotorEnabled",
                "rawdesc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorEnabled)",
                "start": [
                    2334,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorSpeed)\n\n@*param* `s` — The motor speed, usually in meters per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2343,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2343,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "The motor speed, usually in meters per second.",
                            "finish": [
                                2343,
                                39
                            ],
                            "name": "s",
                            "rawdesc": "The motor speed, usually in meters per second.",
                            "start": [
                                2343,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorSpeed)\n\n@*param* `s` — The motor speed, usually in meters per second.",
                    "finish": [
                        2343,
                        44
                    ],
                    "rawdesc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorSpeed)",
                    "start": [
                        2343,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setMotorSpeed(s: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2343,
                    37
                ],
                "name": "setMotorSpeed",
                "rawdesc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setMotorSpeed)",
                "start": [
                    2343,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setUpperLimit)\n\n@*param* `upper` — The upper limit, usually in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2352,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts relative motion between Bodies to one shared axis.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2352,
                                8
                            ],
                            "type": "self",
                            "view": "love.PrismaticJoint"
                        },
                        {
                            "desc": "The upper limit, usually in meters.",
                            "finish": [
                                2352,
                                43
                            ],
                            "name": "upper",
                            "rawdesc": "The upper limit, usually in meters.",
                            "start": [
                                2352,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setUpperLimit)\n\n@*param* `upper` — The upper limit, usually in meters.",
                    "finish": [
                        2352,
                        48
                    ],
                    "rawdesc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setUpperLimit)",
                    "start": [
                        2352,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PrismaticJoint:setUpperLimit(upper: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2352,
                    37
                ],
                "name": "setUpperLimit",
                "rawdesc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/PrismaticJoint:setUpperLimit)",
                "start": [
                    2352,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.PrismaticJoint",
        "type": "type",
        "view": "love.PrismaticJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2360,
                            38
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2360,
                            28
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2360,
                            51
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2360,
                            40
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2360,
                    51
                ],
                "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2360,
                    10
                ],
                "type": "doc.class",
                "view": "love.PulleyJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the total length of the rope.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getConstant)\n\n@*return* `length` — The length of the rope in the joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2370,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2370,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "desc": "\nGet the total length of the rope.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getConstant)\n\n@*return* `length` — The length of the rope in the joint.",
                    "finish": [
                        2370,
                        38
                    ],
                    "rawdesc": "\nGet the total length of the rope.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getConstant)",
                    "returns": [
                        {
                            "desc": "The length of the rope in the joint.",
                            "name": "length",
                            "rawdesc": "The length of the rope in the joint.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2370,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:getConstant()\n  -> length: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2370,
                    32
                ],
                "name": "getConstant",
                "rawdesc": "\nGet the total length of the rope.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getConstant)",
                "start": [
                    2370,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the ground anchor positions in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getGroundAnchors)\n\n@*return* `a1x` — The x coordinate of the first anchor.\n\n@*return* `a1y` — The y coordinate of the first anchor.\n\n@*return* `a2x` — The x coordinate of the second anchor.\n\n@*return* `a2y` — The y coordinate of the second anchor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2382,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2382,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "desc": "\nGet the ground anchor positions in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getGroundAnchors)\n\n@*return* `a1x` — The x coordinate of the first anchor.\n\n@*return* `a1y` — The y coordinate of the first anchor.\n\n@*return* `a2x` — The x coordinate of the second anchor.\n\n@*return* `a2y` — The y coordinate of the second anchor.",
                    "finish": [
                        2382,
                        43
                    ],
                    "rawdesc": "\nGet the ground anchor positions in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getGroundAnchors)",
                    "returns": [
                        {
                            "desc": "The x coordinate of the first anchor.",
                            "name": "a1x",
                            "rawdesc": "The x coordinate of the first anchor.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the first anchor.",
                            "name": "a1y",
                            "rawdesc": "The y coordinate of the first anchor.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the second anchor.",
                            "name": "a2x",
                            "rawdesc": "The x coordinate of the second anchor.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the second anchor.",
                            "name": "a2y",
                            "rawdesc": "The y coordinate of the second anchor.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2382,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:getGroundAnchors()\n  -> a1x: number\n  2. a1y: number\n  3. a2x: number\n  4. a2y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2382,
                    37
                ],
                "name": "getGroundAnchors",
                "rawdesc": "\nGet the ground anchor positions in world coordinates.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getGroundAnchors)",
                "start": [
                    2382,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current length of the rope segment attached to the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthA)\n\n@*return* `length` — The length of the rope segment.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2391,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2391,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "desc": "\nGet the current length of the rope segment attached to the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthA)\n\n@*return* `length` — The length of the rope segment.",
                    "finish": [
                        2391,
                        37
                    ],
                    "rawdesc": "\nGet the current length of the rope segment attached to the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthA)",
                    "returns": [
                        {
                            "desc": "The length of the rope segment.",
                            "name": "length",
                            "rawdesc": "The length of the rope segment.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2391,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:getLengthA()\n  -> length: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2391,
                    31
                ],
                "name": "getLengthA",
                "rawdesc": "\nGet the current length of the rope segment attached to the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthA)",
                "start": [
                    2391,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current length of the rope segment attached to the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthB)\n\n@*return* `length` — The length of the rope segment.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2400,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2400,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "desc": "\nGet the current length of the rope segment attached to the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthB)\n\n@*return* `length` — The length of the rope segment.",
                    "finish": [
                        2400,
                        37
                    ],
                    "rawdesc": "\nGet the current length of the rope segment attached to the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthB)",
                    "returns": [
                        {
                            "desc": "The length of the rope segment.",
                            "name": "length",
                            "rawdesc": "The length of the rope segment.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2400,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:getLengthB()\n  -> length: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2400,
                    31
                ],
                "name": "getLengthB",
                "rawdesc": "\nGet the current length of the rope segment attached to the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getLengthB)",
                "start": [
                    2400,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the maximum lengths of the rope segments.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getMaxLengths)\n\n@*return* `len1` — The maximum length of the first rope segment.\n\n@*return* `len2` — The maximum length of the second rope segment.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2410,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2410,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "desc": "\nGet the maximum lengths of the rope segments.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getMaxLengths)\n\n@*return* `len1` — The maximum length of the first rope segment.\n\n@*return* `len2` — The maximum length of the second rope segment.",
                    "finish": [
                        2410,
                        40
                    ],
                    "rawdesc": "\nGet the maximum lengths of the rope segments.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getMaxLengths)",
                    "returns": [
                        {
                            "desc": "The maximum length of the first rope segment.",
                            "name": "len1",
                            "rawdesc": "The maximum length of the first rope segment.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum length of the second rope segment.",
                            "name": "len2",
                            "rawdesc": "The maximum length of the second rope segment.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2410,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:getMaxLengths()\n  -> len1: number\n  2. len2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2410,
                    34
                ],
                "name": "getMaxLengths",
                "rawdesc": "\nGet the maximum lengths of the rope segments.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getMaxLengths)",
                "start": [
                    2410,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getRatio)\n\n@*return* `ratio` — The pulley ratio of the joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2419,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2419,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "desc": "\nGet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getRatio)\n\n@*return* `ratio` — The pulley ratio of the joint.",
                    "finish": [
                        2419,
                        35
                    ],
                    "rawdesc": "\nGet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getRatio)",
                    "returns": [
                        {
                            "desc": "The pulley ratio of the joint.",
                            "name": "ratio",
                            "rawdesc": "The pulley ratio of the joint.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2419,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:getRatio()\n  -> ratio: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2419,
                    29
                ],
                "name": "getRatio",
                "rawdesc": "\nGet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:getRatio)",
                "start": [
                    2419,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the total length of the rope.\n\nSetting a new length for the rope updates the maximum length values of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setConstant)\n\n@*param* `length` — The new length of the rope in the joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2430,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2430,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        },
                        {
                            "desc": "The new length of the rope in the joint.",
                            "finish": [
                                2430,
                                39
                            ],
                            "name": "length",
                            "rawdesc": "The new length of the rope in the joint.",
                            "start": [
                                2430,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the total length of the rope.\n\nSetting a new length for the rope updates the maximum length values of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setConstant)\n\n@*param* `length` — The new length of the rope in the joint.",
                    "finish": [
                        2430,
                        44
                    ],
                    "rawdesc": "\nSet the total length of the rope.\n\nSetting a new length for the rope updates the maximum length values of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setConstant)",
                    "start": [
                        2430,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:setConstant(length: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2430,
                    32
                ],
                "name": "setConstant",
                "rawdesc": "\nSet the total length of the rope.\n\nSetting a new length for the rope updates the maximum length values of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setConstant)",
                "start": [
                    2430,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the maximum lengths of the rope segments.\n\nThe physics module also imposes maximum values for the rope segments. If the parameters exceed these values, the maximum values are set instead of the requested values.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setMaxLengths)\n\n@*param* `max1` — The new maximum length of the first segment.\n\n@*param* `max2` — The new maximum length of the second segment.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2442,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2442,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        },
                        {
                            "desc": "The new maximum length of the first segment.",
                            "finish": [
                                2442,
                                39
                            ],
                            "name": "max1",
                            "rawdesc": "The new maximum length of the first segment.",
                            "start": [
                                2442,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The new maximum length of the second segment.",
                            "finish": [
                                2442,
                                45
                            ],
                            "name": "max2",
                            "rawdesc": "The new maximum length of the second segment.",
                            "start": [
                                2442,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the maximum lengths of the rope segments.\n\nThe physics module also imposes maximum values for the rope segments. If the parameters exceed these values, the maximum values are set instead of the requested values.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setMaxLengths)\n\n@*param* `max1` — The new maximum length of the first segment.\n\n@*param* `max2` — The new maximum length of the second segment.",
                    "finish": [
                        2442,
                        50
                    ],
                    "rawdesc": "\nSet the maximum lengths of the rope segments.\n\nThe physics module also imposes maximum values for the rope segments. If the parameters exceed these values, the maximum values are set instead of the requested values.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setMaxLengths)",
                    "start": [
                        2442,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:setMaxLengths(max1: number, max2: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2442,
                    34
                ],
                "name": "setMaxLengths",
                "rawdesc": "\nSet the maximum lengths of the rope segments.\n\nThe physics module also imposes maximum values for the rope segments. If the parameters exceed these values, the maximum values are set instead of the requested values.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setMaxLengths)",
                "start": [
                    2442,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setRatio)\n\n@*param* `ratio` — The new pulley ratio of the joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2451,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllows you to simulate bodies connected through pulleys.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2451,
                                8
                            ],
                            "type": "self",
                            "view": "love.PulleyJoint"
                        },
                        {
                            "desc": "The new pulley ratio of the joint.",
                            "finish": [
                                2451,
                                35
                            ],
                            "name": "ratio",
                            "rawdesc": "The new pulley ratio of the joint.",
                            "start": [
                                2451,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setRatio)\n\n@*param* `ratio` — The new pulley ratio of the joint.",
                    "finish": [
                        2451,
                        40
                    ],
                    "rawdesc": "\nSet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setRatio)",
                    "start": [
                        2451,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.PulleyJoint:setRatio(ratio: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2451,
                    29
                ],
                "name": "setRatio",
                "rawdesc": "\nSet the pulley ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/PulleyJoint:setRatio)",
                "start": [
                    2451,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.PulleyJoint",
        "type": "type",
        "view": "love.PulleyJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2538,
                            32
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2538,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2538,
                    32
                ],
                "rawdesc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    2538,
                    10
                ],
                "type": "doc.class",
                "view": "love.Quad",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets reference texture dimensions initially specified in love.graphics.newQuad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getTextureDimensions)\n\n@*return* `sw` — The Texture width used by the Quad.\n\n@*return* `sh` — The Texture height used by the Quad.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2549,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2549,
                                8
                            ],
                            "type": "self",
                            "view": "love.Quad"
                        }
                    ],
                    "desc": "\nGets reference texture dimensions initially specified in love.graphics.newQuad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getTextureDimensions)\n\n@*return* `sw` — The Texture width used by the Quad.\n\n@*return* `sh` — The Texture height used by the Quad.",
                    "finish": [
                        2549,
                        40
                    ],
                    "rawdesc": "\nGets reference texture dimensions initially specified in love.graphics.newQuad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getTextureDimensions)",
                    "returns": [
                        {
                            "desc": "The Texture width used by the Quad.",
                            "name": "sw",
                            "rawdesc": "The Texture width used by the Quad.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Texture height used by the Quad.",
                            "name": "sh",
                            "rawdesc": "The Texture height used by the Quad.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2549,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Quad:getTextureDimensions()\n  -> sw: number\n  2. sh: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2549,
                    34
                ],
                "name": "getTextureDimensions",
                "rawdesc": "\nGets reference texture dimensions initially specified in love.graphics.newQuad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getTextureDimensions)",
                "start": [
                    2549,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current viewport of this Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getViewport)\n\n@*return* `x` — The top-left corner along the x-axis.\n\n@*return* `y` — The top-left corner along the y-axis.\n\n@*return* `w` — The width of the viewport.\n\n@*return* `h` — The height of the viewport.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2561,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2561,
                                8
                            ],
                            "type": "self",
                            "view": "love.Quad"
                        }
                    ],
                    "desc": "\nGets the current viewport of this Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getViewport)\n\n@*return* `x` — The top-left corner along the x-axis.\n\n@*return* `y` — The top-left corner along the y-axis.\n\n@*return* `w` — The width of the viewport.\n\n@*return* `h` — The height of the viewport.",
                    "finish": [
                        2561,
                        31
                    ],
                    "rawdesc": "\nGets the current viewport of this Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getViewport)",
                    "returns": [
                        {
                            "desc": "The top-left corner along the x-axis.",
                            "name": "x",
                            "rawdesc": "The top-left corner along the x-axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The top-left corner along the y-axis.",
                            "name": "y",
                            "rawdesc": "The top-left corner along the y-axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the viewport.",
                            "name": "w",
                            "rawdesc": "The width of the viewport.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the viewport.",
                            "name": "h",
                            "rawdesc": "The height of the viewport.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2561,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Quad:getViewport()\n  -> x: number\n  2. y: number\n  3. w: number\n  4. h: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2561,
                    25
                ],
                "name": "getViewport",
                "rawdesc": "\nGets the current viewport of this Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:getViewport)",
                "start": [
                    2561,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the texture coordinates according to a viewport.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:setViewport)\n\n@*param* `x` — The top-left corner along the x-axis.\n\n@*param* `y` — The top-left corner along the y-axis.\n\n@*param* `w` — The width of the viewport.\n\n@*param* `h` — The height of the viewport.\n\n@*param* `sw` — The reference width, the width of the Image. (Must be greater than 0.)\n\n@*param* `sh` — The reference height, the height of the Image. (Must be greater than 0.)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2575,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA quadrilateral (a polygon with four sides and four corners) with texture coordinate information.\n\nQuads can be used to select part of a texture to draw. In this way, one large texture atlas can be loaded, and then split up into sub-images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2575,
                                8
                            ],
                            "type": "self",
                            "view": "love.Quad"
                        },
                        {
                            "desc": "The top-left corner along the x-axis.",
                            "finish": [
                                2575,
                                27
                            ],
                            "name": "x",
                            "rawdesc": "The top-left corner along the x-axis.",
                            "start": [
                                2575,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The top-left corner along the y-axis.",
                            "finish": [
                                2575,
                                30
                            ],
                            "name": "y",
                            "rawdesc": "The top-left corner along the y-axis.",
                            "start": [
                                2575,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the viewport.",
                            "finish": [
                                2575,
                                33
                            ],
                            "name": "w",
                            "rawdesc": "The width of the viewport.",
                            "start": [
                                2575,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the viewport.",
                            "finish": [
                                2575,
                                36
                            ],
                            "name": "h",
                            "rawdesc": "The height of the viewport.",
                            "start": [
                                2575,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The reference width, the width of the Image. (Must be greater than 0.)",
                            "finish": [
                                2575,
                                40
                            ],
                            "name": "sw",
                            "rawdesc": "The reference width, the width of the Image. (Must be greater than 0.)",
                            "start": [
                                2575,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The reference height, the height of the Image. (Must be greater than 0.)",
                            "finish": [
                                2575,
                                44
                            ],
                            "name": "sh",
                            "rawdesc": "The reference height, the height of the Image. (Must be greater than 0.)",
                            "start": [
                                2575,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the texture coordinates according to a viewport.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:setViewport)\n\n@*param* `x` — The top-left corner along the x-axis.\n\n@*param* `y` — The top-left corner along the y-axis.\n\n@*param* `w` — The width of the viewport.\n\n@*param* `h` — The height of the viewport.\n\n@*param* `sw` — The reference width, the width of the Image. (Must be greater than 0.)\n\n@*param* `sh` — The reference height, the height of the Image. (Must be greater than 0.)",
                    "finish": [
                        2575,
                        49
                    ],
                    "rawdesc": "\nSets the texture coordinates according to a viewport.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:setViewport)",
                    "start": [
                        2575,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Quad:setViewport(x: number, y: number, w: number, h: number, sw: number, sh: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2575,
                    25
                ],
                "name": "setViewport",
                "rawdesc": "\nSets the texture coordinates according to a viewport.\n\n\n[Open in Browser](https://love2d.org/wiki/Quad:setViewport)",
                "start": [
                    2575,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Quad",
        "type": "type",
        "view": "love.Quad"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            400,
                            43
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            400,
                            32
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    400,
                    43
                ],
                "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "start": [
                    400,
                    10
                ],
                "type": "doc.class",
                "view": "love.RandomGenerator",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the seed of the random number generator object.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed value is an integer number in the range of 2^64 - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getSeed)\n\n@*return* `low` — Integer number representing the lower 32 bits of the RandomGenerator's 64 bit seed value.\n\n@*return* `high` — Integer number representing the higher 32 bits of the RandomGenerator's 64 bit seed value.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                413,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                413,
                                8
                            ],
                            "type": "self",
                            "view": "love.RandomGenerator"
                        }
                    ],
                    "desc": "\nGets the seed of the random number generator object.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed value is an integer number in the range of 2^64 - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getSeed)\n\n@*return* `low` — Integer number representing the lower 32 bits of the RandomGenerator's 64 bit seed value.\n\n@*return* `high` — Integer number representing the higher 32 bits of the RandomGenerator's 64 bit seed value.",
                    "finish": [
                        413,
                        38
                    ],
                    "rawdesc": "\nGets the seed of the random number generator object.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed value is an integer number in the range of 2^64 - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getSeed)",
                    "returns": [
                        {
                            "desc": "Integer number representing the lower 32 bits of the RandomGenerator's 64 bit seed value.",
                            "name": "low",
                            "rawdesc": "Integer number representing the lower 32 bits of the RandomGenerator's 64 bit seed value.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Integer number representing the higher 32 bits of the RandomGenerator's 64 bit seed value.",
                            "name": "high",
                            "rawdesc": "Integer number representing the higher 32 bits of the RandomGenerator's 64 bit seed value.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        413,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RandomGenerator:getSeed()\n  -> low: number\n  2. high: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    413,
                    32
                ],
                "name": "getSeed",
                "rawdesc": "\nGets the seed of the random number generator object.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed value is an integer number in the range of 2^64 - 1.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getSeed)",
                "start": [
                    413,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current state of the random number generator. This returns an opaque string which is only useful for later use with RandomGenerator:setState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:getSeed in that getState gets the RandomGenerator's current state, whereas getSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getState)\n\n@*return* `state` — The current state of the RandomGenerator object, represented as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                424,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                424,
                                8
                            ],
                            "type": "self",
                            "view": "love.RandomGenerator"
                        }
                    ],
                    "desc": "\nGets the current state of the random number generator. This returns an opaque string which is only useful for later use with RandomGenerator:setState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:getSeed in that getState gets the RandomGenerator's current state, whereas getSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getState)\n\n@*return* `state` — The current state of the RandomGenerator object, represented as a string.",
                    "finish": [
                        424,
                        39
                    ],
                    "rawdesc": "\nGets the current state of the random number generator. This returns an opaque string which is only useful for later use with RandomGenerator:setState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:getSeed in that getState gets the RandomGenerator's current state, whereas getSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getState)",
                    "returns": [
                        {
                            "desc": "The current state of the RandomGenerator object, represented as a string.",
                            "name": "state",
                            "rawdesc": "The current state of the RandomGenerator object, represented as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        424,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RandomGenerator:getState()\n  -> state: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    424,
                    33
                ],
                "name": "getState",
                "rawdesc": "\nGets the current state of the random number generator. This returns an opaque string which is only useful for later use with RandomGenerator:setState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:getSeed in that getState gets the RandomGenerator's current state, whereas getSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:getState)",
                "start": [
                    424,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates a pseudo-random number in a platform independent manner.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:random)\n\n\n---\n\n@*return* `number` — The pseudo-random number.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                435,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                435,
                                8
                            ],
                            "type": "self",
                            "view": "love.RandomGenerator"
                        }
                    ],
                    "desc": "\nGenerates a pseudo-random number in a platform independent manner.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:random)\n\n\n---\n\n@*return* `number` — The pseudo-random number.",
                    "finish": [
                        435,
                        37
                    ],
                    "rawdesc": "\nGenerates a pseudo-random number in a platform independent manner.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:random)",
                    "returns": [
                        {
                            "desc": "The pseudo-random number.",
                            "name": "number",
                            "rawdesc": "The pseudo-random number.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        435,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RandomGenerator:random()\n  -> number: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    435,
                    31
                ],
                "name": "random",
                "rawdesc": "\nGenerates a pseudo-random number in a platform independent manner.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:random)",
                "start": [
                    435,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:randomNormal)\n\n@*param* `stddev` — Standard deviation of the distribution.\n\n@*param* `mean` — The mean of the distribution.\n\n@*return* `number` — Normally distributed random number with variance (stddev)² and the specified mean.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                446,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                446,
                                8
                            ],
                            "type": "self",
                            "view": "love.RandomGenerator"
                        },
                        {
                            "desc": "Standard deviation of the distribution.",
                            "finish": [
                                446,
                                44
                            ],
                            "name": "stddev",
                            "rawdesc": "Standard deviation of the distribution.",
                            "start": [
                                446,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The mean of the distribution.",
                            "finish": [
                                446,
                                50
                            ],
                            "name": "mean",
                            "rawdesc": "The mean of the distribution.",
                            "start": [
                                446,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:randomNormal)\n\n@*param* `stddev` — Standard deviation of the distribution.\n\n@*param* `mean` — The mean of the distribution.\n\n@*return* `number` — Normally distributed random number with variance (stddev)² and the specified mean.",
                    "finish": [
                        446,
                        55
                    ],
                    "rawdesc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:randomNormal)",
                    "returns": [
                        {
                            "desc": "Normally distributed random number with variance (stddev)² and the specified mean.",
                            "name": "number",
                            "rawdesc": "Normally distributed random number with variance (stddev)² and the specified mean.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        446,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RandomGenerator:randomNormal(stddev?: number, mean?: number)\n  -> number: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    446,
                    37
                ],
                "name": "randomNormal",
                "rawdesc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:randomNormal)",
                "start": [
                    446,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the seed of the random number generator using the specified integer number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setSeed)\n\n\n---\n\n@*param* `seed` — The integer number with which you want to seed the randomization. Must be within the range of 2^53.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                456,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                456,
                                8
                            ],
                            "type": "self",
                            "view": "love.RandomGenerator"
                        },
                        {
                            "desc": "The integer number with which you want to seed the randomization. Must be within the range of 2^53.",
                            "finish": [
                                456,
                                37
                            ],
                            "name": "seed",
                            "rawdesc": "The integer number with which you want to seed the randomization. Must be within the range of 2^53.",
                            "start": [
                                456,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the seed of the random number generator using the specified integer number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setSeed)\n\n\n---\n\n@*param* `seed` — The integer number with which you want to seed the randomization. Must be within the range of 2^53.",
                    "finish": [
                        456,
                        42
                    ],
                    "rawdesc": "\nSets the seed of the random number generator using the specified integer number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setSeed)",
                    "start": [
                        456,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RandomGenerator:setSeed(seed: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    456,
                    32
                ],
                "name": "setSeed",
                "rawdesc": "\nSets the seed of the random number generator using the specified integer number.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setSeed)",
                "start": [
                    456,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque string and should only originate from a previous call to RandomGenerator:getState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:setSeed in that setState directly sets the RandomGenerator's current implementation-dependent state, whereas setSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setState)\n\n@*param* `state` — The new state of the RandomGenerator object, represented as a string. This should originate from a previous call to RandomGenerator:getState.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                467,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA random number generation object which has its own random state.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                467,
                                8
                            ],
                            "type": "self",
                            "view": "love.RandomGenerator"
                        },
                        {
                            "desc": "The new state of the RandomGenerator object, represented as a string. This should originate from a previous call to RandomGenerator:getState.",
                            "finish": [
                                467,
                                39
                            ],
                            "name": "state",
                            "rawdesc": "The new state of the RandomGenerator object, represented as a string. This should originate from a previous call to RandomGenerator:getState.",
                            "start": [
                                467,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque string and should only originate from a previous call to RandomGenerator:getState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:setSeed in that setState directly sets the RandomGenerator's current implementation-dependent state, whereas setSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setState)\n\n@*param* `state` — The new state of the RandomGenerator object, represented as a string. This should originate from a previous call to RandomGenerator:getState.",
                    "finish": [
                        467,
                        44
                    ],
                    "rawdesc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque string and should only originate from a previous call to RandomGenerator:getState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:setSeed in that setState directly sets the RandomGenerator's current implementation-dependent state, whereas setSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setState)",
                    "start": [
                        467,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RandomGenerator:setState(state: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    467,
                    33
                ],
                "name": "setState",
                "rawdesc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque string and should only originate from a previous call to RandomGenerator:getState in the same major version of LÖVE.\n\nThis is different from RandomGenerator:setSeed in that setState directly sets the RandomGenerator's current implementation-dependent state, whereas setSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/RandomGenerator:setState)",
                "start": [
                    467,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.RandomGenerator",
        "type": "type",
        "view": "love.RandomGenerator"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            178,
                            38
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            178,
                            27
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    178,
                    38
                ],
                "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "start": [
                    178,
                    10
                ],
                "type": "doc.class",
                "view": "love.Rasterizer",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets font advance.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAdvance)\n\n@*return* `advance` — Font advance.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                188,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                188,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "desc": "\nGets font advance.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAdvance)\n\n@*return* `advance` — Font advance.",
                    "finish": [
                        188,
                        36
                    ],
                    "rawdesc": "\nGets font advance.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAdvance)",
                    "returns": [
                        {
                            "desc": "Font advance.",
                            "name": "advance",
                            "rawdesc": "Font advance.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        188,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getAdvance()\n  -> advance: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    188,
                    30
                ],
                "name": "getAdvance",
                "rawdesc": "\nGets font advance.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAdvance)",
                "start": [
                    188,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets ascent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAscent)\n\n@*return* `height` — Ascent height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                197,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                197,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "desc": "\nGets ascent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAscent)\n\n@*return* `height` — Ascent height.",
                    "finish": [
                        197,
                        35
                    ],
                    "rawdesc": "\nGets ascent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAscent)",
                    "returns": [
                        {
                            "desc": "Ascent height.",
                            "name": "height",
                            "rawdesc": "Ascent height.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        197,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getAscent()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    197,
                    29
                ],
                "name": "getAscent",
                "rawdesc": "\nGets ascent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getAscent)",
                "start": [
                    197,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets descent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getDescent)\n\n@*return* `height` — Descent height.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                206,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                206,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "desc": "\nGets descent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getDescent)\n\n@*return* `height` — Descent height.",
                    "finish": [
                        206,
                        36
                    ],
                    "rawdesc": "\nGets descent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getDescent)",
                    "returns": [
                        {
                            "desc": "Descent height.",
                            "name": "height",
                            "rawdesc": "Descent height.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        206,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getDescent()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    206,
                    30
                ],
                "name": "getDescent",
                "rawdesc": "\nGets descent height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getDescent)",
                "start": [
                    206,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets number of glyphs in font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphCount)\n\n@*return* `count` — Glyphs count.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                215,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                215,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "desc": "\nGets number of glyphs in font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphCount)\n\n@*return* `count` — Glyphs count.",
                    "finish": [
                        215,
                        39
                    ],
                    "rawdesc": "\nGets number of glyphs in font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphCount)",
                    "returns": [
                        {
                            "desc": "Glyphs count.",
                            "name": "count",
                            "rawdesc": "Glyphs count.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        215,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getGlyphCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    215,
                    33
                ],
                "name": "getGlyphCount",
                "rawdesc": "\nGets number of glyphs in font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphCount)",
                "start": [
                    215,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets glyph data of a specified glyph.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphData)\n\n\n---\n\n@*param* `glyph` — Glyph\n\n@*return* `glyphData` — Glyph data",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                226,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                226,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        },
                        {
                            "desc": "Glyph",
                            "finish": [
                                226,
                                38
                            ],
                            "name": "glyph",
                            "rawdesc": "Glyph",
                            "start": [
                                226,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets glyph data of a specified glyph.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphData)\n\n\n---\n\n@*param* `glyph` — Glyph\n\n@*return* `glyphData` — Glyph data",
                    "finish": [
                        226,
                        43
                    ],
                    "rawdesc": "\nGets glyph data of a specified glyph.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphData)",
                    "returns": [
                        {
                            "desc": "Glyph data",
                            "name": "glyphData",
                            "rawdesc": "Glyph data",
                            "type": "function.return",
                            "view": "love.GlyphData"
                        }
                    ],
                    "start": [
                        226,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getGlyphData(glyph: string)\n  -> glyphData: love.GlyphData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    226,
                    32
                ],
                "name": "getGlyphData",
                "rawdesc": "\nGets glyph data of a specified glyph.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getGlyphData)",
                "start": [
                    226,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets font height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getHeight)\n\n@*return* `height` — Font height",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                235,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                235,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "desc": "\nGets font height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getHeight)\n\n@*return* `height` — Font height",
                    "finish": [
                        235,
                        35
                    ],
                    "rawdesc": "\nGets font height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getHeight)",
                    "returns": [
                        {
                            "desc": "Font height",
                            "name": "height",
                            "rawdesc": "Font height",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        235,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    235,
                    29
                ],
                "name": "getHeight",
                "rawdesc": "\nGets font height.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getHeight)",
                "start": [
                    235,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets line height of a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getLineHeight)\n\n@*return* `height` — Line height of a font.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                244,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                244,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "desc": "\nGets line height of a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getLineHeight)\n\n@*return* `height` — Line height of a font.",
                    "finish": [
                        244,
                        39
                    ],
                    "rawdesc": "\nGets line height of a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getLineHeight)",
                    "returns": [
                        {
                            "desc": "Line height of a font.",
                            "name": "height",
                            "rawdesc": "Line height of a font.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        244,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:getLineHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    244,
                    33
                ],
                "name": "getLineHeight",
                "rawdesc": "\nGets line height of a font.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:getLineHeight)",
                "start": [
                    244,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if font contains specified glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:hasGlyphs)\n\n@*param* `glyph1` — Glyph\n\n@*param* `glyph2` — Glyph\n\n@*return* `hasGlyphs` — Whatever font contains specified glyphs.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "finish": [
                                256,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Rasterizer handles font rendering, containing the font data (image or TrueType font) and drawable glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                            "start": [
                                256,
                                8
                            ],
                            "type": "self",
                            "view": "love.Rasterizer"
                        },
                        {
                            "desc": "Glyph",
                            "finish": [
                                256,
                                36
                            ],
                            "name": "glyph1",
                            "rawdesc": "Glyph",
                            "start": [
                                256,
                                30
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "desc": "Glyph",
                            "finish": [
                                256,
                                44
                            ],
                            "name": "glyph2",
                            "rawdesc": "Glyph",
                            "start": [
                                256,
                                38
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                256,
                                49
                            ],
                            "start": [
                                256,
                                46
                            ],
                            "type": "...",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nChecks if font contains specified glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:hasGlyphs)\n\n@*param* `glyph1` — Glyph\n\n@*param* `glyph2` — Glyph\n\n@*return* `hasGlyphs` — Whatever font contains specified glyphs.",
                    "finish": [
                        256,
                        54
                    ],
                    "rawdesc": "\nChecks if font contains specified glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:hasGlyphs)",
                    "returns": [
                        {
                            "desc": "Whatever font contains specified glyphs.",
                            "name": "hasGlyphs",
                            "rawdesc": "Whatever font contains specified glyphs.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        256,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Rasterizer:hasGlyphs(glyph1: string|number, glyph2: string|number, ...string|number)\n  -> hasGlyphs: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    256,
                    29
                ],
                "name": "hasGlyphs",
                "rawdesc": "\nChecks if font contains specified glyphs.\n\n\n[Open in Browser](https://love2d.org/wiki/Rasterizer:hasGlyphs)",
                "start": [
                    256,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Rasterizer",
        "type": "type",
        "view": "love.Rasterizer"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            298,
                            43
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            298,
                            32
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    298,
                    43
                ],
                "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "start": [
                    298,
                    10
                ],
                "type": "doc.class",
                "view": "love.RecordingDevice",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of bits per sample in the data currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getBitDepth)\n\n@*return* `bits` — The number of bits per sample in the data that's currently being recorded.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                308,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                308,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets the number of bits per sample in the data currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getBitDepth)\n\n@*return* `bits` — The number of bits per sample in the data that's currently being recorded.",
                    "finish": [
                        308,
                        42
                    ],
                    "rawdesc": "\nGets the number of bits per sample in the data currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getBitDepth)",
                    "returns": [
                        {
                            "desc": "The number of bits per sample in the data that's currently being recorded.",
                            "name": "bits",
                            "rawdesc": "The number of bits per sample in the data that's currently being recorded.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        308,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:getBitDepth()\n  -> bits: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    308,
                    36
                ],
                "name": "getBitDepth",
                "rawdesc": "\nGets the number of bits per sample in the data currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getBitDepth)",
                "start": [
                    308,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of channels currently being recorded (mono or stereo).\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getChannelCount)\n\n@*return* `channels` — The number of channels being recorded (1 for mono, 2 for stereo).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                317,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                317,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets the number of channels currently being recorded (mono or stereo).\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getChannelCount)\n\n@*return* `channels` — The number of channels being recorded (1 for mono, 2 for stereo).",
                    "finish": [
                        317,
                        46
                    ],
                    "rawdesc": "\nGets the number of channels currently being recorded (mono or stereo).\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getChannelCount)",
                    "returns": [
                        {
                            "desc": "The number of channels being recorded (1 for mono, 2 for stereo).",
                            "name": "channels",
                            "rawdesc": "The number of channels being recorded (1 for mono, 2 for stereo).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        317,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:getChannelCount()\n  -> channels: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    317,
                    40
                ],
                "name": "getChannelCount",
                "rawdesc": "\nGets the number of channels currently being recorded (mono or stereo).\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getChannelCount)",
                "start": [
                    317,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets all recorded audio SoundData stored in the device's internal ring buffer.\n\nThe internal ring buffer is cleared when this function is called, so calling it again will only get audio recorded after the previous call. If the device's internal ring buffer completely fills up before getData is called, the oldest data that doesn't fit into the buffer will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getData)\n\n@*return* `data` — The recorded audio data, or nil if the device isn't recording.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                328,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                328,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets all recorded audio SoundData stored in the device's internal ring buffer.\n\nThe internal ring buffer is cleared when this function is called, so calling it again will only get audio recorded after the previous call. If the device's internal ring buffer completely fills up before getData is called, the oldest data that doesn't fit into the buffer will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getData)\n\n@*return* `data` — The recorded audio data, or nil if the device isn't recording.",
                    "finish": [
                        328,
                        38
                    ],
                    "rawdesc": "\nGets all recorded audio SoundData stored in the device's internal ring buffer.\n\nThe internal ring buffer is cleared when this function is called, so calling it again will only get audio recorded after the previous call. If the device's internal ring buffer completely fills up before getData is called, the oldest data that doesn't fit into the buffer will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getData)",
                    "returns": [
                        {
                            "desc": "The recorded audio data, or nil if the device isn't recording.",
                            "name": "data",
                            "rawdesc": "The recorded audio data, or nil if the device isn't recording.",
                            "type": "function.return",
                            "view": "love.SoundData"
                        }
                    ],
                    "start": [
                        328,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:getData()\n  -> data: love.SoundData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    328,
                    32
                ],
                "name": "getData",
                "rawdesc": "\nGets all recorded audio SoundData stored in the device's internal ring buffer.\n\nThe internal ring buffer is cleared when this function is called, so calling it again will only get audio recorded after the previous call. If the device's internal ring buffer completely fills up before getData is called, the oldest data that doesn't fit into the buffer will be lost.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getData)",
                "start": [
                    328,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the name of the recording device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getName)\n\n@*return* `name` — The name of the device.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                337,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                337,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets the name of the recording device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getName)\n\n@*return* `name` — The name of the device.",
                    "finish": [
                        337,
                        38
                    ],
                    "rawdesc": "\nGets the name of the recording device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getName)",
                    "returns": [
                        {
                            "desc": "The name of the device.",
                            "name": "name",
                            "rawdesc": "The name of the device.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        337,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:getName()\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    337,
                    32
                ],
                "name": "getName",
                "rawdesc": "\nGets the name of the recording device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getName)",
                "start": [
                    337,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of currently recorded samples.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleCount)\n\n@*return* `samples` — The number of samples that have been recorded so far.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                346,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                346,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets the number of currently recorded samples.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleCount)\n\n@*return* `samples` — The number of samples that have been recorded so far.",
                    "finish": [
                        346,
                        45
                    ],
                    "rawdesc": "\nGets the number of currently recorded samples.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleCount)",
                    "returns": [
                        {
                            "desc": "The number of samples that have been recorded so far.",
                            "name": "samples",
                            "rawdesc": "The number of samples that have been recorded so far.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        346,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:getSampleCount()\n  -> samples: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    346,
                    39
                ],
                "name": "getSampleCount",
                "rawdesc": "\nGets the number of currently recorded samples.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleCount)",
                "start": [
                    346,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of samples per second currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleRate)\n\n@*return* `rate` — The number of samples being recorded per second (sample rate).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                355,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                355,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets the number of samples per second currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleRate)\n\n@*return* `rate` — The number of samples being recorded per second (sample rate).",
                    "finish": [
                        355,
                        44
                    ],
                    "rawdesc": "\nGets the number of samples per second currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleRate)",
                    "returns": [
                        {
                            "desc": "The number of samples being recorded per second (sample rate).",
                            "name": "rate",
                            "rawdesc": "The number of samples being recorded per second (sample rate).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        355,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:getSampleRate()\n  -> rate: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    355,
                    38
                ],
                "name": "getSampleRate",
                "rawdesc": "\nGets the number of samples per second currently being recorded.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:getSampleRate)",
                "start": [
                    355,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the device is currently recording.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:isRecording)\n\n@*return* `recording` — True if the recording, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                364,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                364,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nGets whether the device is currently recording.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:isRecording)\n\n@*return* `recording` — True if the recording, false otherwise.",
                    "finish": [
                        364,
                        42
                    ],
                    "rawdesc": "\nGets whether the device is currently recording.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:isRecording)",
                    "returns": [
                        {
                            "desc": "True if the recording, false otherwise.",
                            "name": "recording",
                            "rawdesc": "True if the recording, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        364,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:isRecording()\n  -> recording: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    364,
                    36
                ],
                "name": "isRecording",
                "rawdesc": "\nGets whether the device is currently recording.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:isRecording)",
                "start": [
                    364,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nBegins recording audio using this device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:start)\n\n@*param* `samplecount` — The maximum number of samples to store in an internal ring buffer when recording. RecordingDevice:getData clears the internal buffer when called.\n\n@*param* `samplerate` — The number of samples per second to store when recording.\n\n@*param* `bitdepth` — The number of bits per sample.\n\n@*param* `channels` — Whether to record in mono or stereo. Most microphones don't support more than 1 channel.\n\n@*return* `success` — True if the device successfully began recording using the specified parameters, false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                377,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                377,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        },
                        {
                            "desc": "The maximum number of samples to store in an internal ring buffer when recording. RecordingDevice:getData clears the internal buffer when called.",
                            "finish": [
                                377,
                                42
                            ],
                            "name": "samplecount",
                            "rawdesc": "The maximum number of samples to store in an internal ring buffer when recording. RecordingDevice:getData clears the internal buffer when called.",
                            "start": [
                                377,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of samples per second to store when recording.",
                            "finish": [
                                377,
                                54
                            ],
                            "name": "samplerate",
                            "rawdesc": "The number of samples per second to store when recording.",
                            "start": [
                                377,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The number of bits per sample.",
                            "finish": [
                                377,
                                64
                            ],
                            "name": "bitdepth",
                            "rawdesc": "The number of bits per sample.",
                            "start": [
                                377,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Whether to record in mono or stereo. Most microphones don't support more than 1 channel.",
                            "finish": [
                                377,
                                74
                            ],
                            "name": "channels",
                            "rawdesc": "Whether to record in mono or stereo. Most microphones don't support more than 1 channel.",
                            "start": [
                                377,
                                66
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nBegins recording audio using this device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:start)\n\n@*param* `samplecount` — The maximum number of samples to store in an internal ring buffer when recording. RecordingDevice:getData clears the internal buffer when called.\n\n@*param* `samplerate` — The number of samples per second to store when recording.\n\n@*param* `bitdepth` — The number of bits per sample.\n\n@*param* `channels` — Whether to record in mono or stereo. Most microphones don't support more than 1 channel.\n\n@*return* `success` — True if the device successfully began recording using the specified parameters, false if not.",
                    "finish": [
                        377,
                        79
                    ],
                    "rawdesc": "\nBegins recording audio using this device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:start)",
                    "returns": [
                        {
                            "desc": "True if the device successfully began recording using the specified parameters, false if not.",
                            "name": "success",
                            "rawdesc": "True if the device successfully began recording using the specified parameters, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        377,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:start(samplecount: number, samplerate?: number, bitdepth?: number, channels?: number)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    377,
                    30
                ],
                "name": "start",
                "rawdesc": "\nBegins recording audio using this device.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:start)",
                "start": [
                    377,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStops recording audio from this device. Any sound data currently in the device's buffer will be returned.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:stop)\n\n@*return* `data` — The sound data currently in the device's buffer, or nil if the device wasn't recording.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                386,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRepresents an audio input device capable of recording sounds.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                386,
                                8
                            ],
                            "type": "self",
                            "view": "love.RecordingDevice"
                        }
                    ],
                    "desc": "\nStops recording audio from this device. Any sound data currently in the device's buffer will be returned.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:stop)\n\n@*return* `data` — The sound data currently in the device's buffer, or nil if the device wasn't recording.",
                    "finish": [
                        386,
                        35
                    ],
                    "rawdesc": "\nStops recording audio from this device. Any sound data currently in the device's buffer will be returned.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:stop)",
                    "returns": [
                        {
                            "desc": "The sound data currently in the device's buffer, or nil if the device wasn't recording.",
                            "name": "data",
                            "rawdesc": "The sound data currently in the device's buffer, or nil if the device wasn't recording.",
                            "type": "function.return",
                            "view": "love.SoundData"
                        }
                    ],
                    "start": [
                        386,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RecordingDevice:stop()\n  -> data: love.SoundData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    386,
                    29
                ],
                "name": "stop",
                "rawdesc": "\nStops recording audio from this device. Any sound data currently in the device's buffer will be returned.\n\n\n[Open in Browser](https://love2d.org/wiki/RecordingDevice:stop)",
                "start": [
                    386,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.RecordingDevice",
        "type": "type",
        "view": "love.RecordingDevice"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2459,
                            40
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2459,
                            30
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2459,
                            53
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2459,
                            42
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2459,
                    53
                ],
                "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2459,
                    10
                ],
                "type": "doc.class",
                "view": "love.RevoluteJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:areLimitsEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2469,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2469,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:areLimitsEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                    "finish": [
                        2469,
                        45
                    ],
                    "rawdesc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:areLimitsEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false otherwise.",
                            "name": "enabled",
                            "rawdesc": "True if enabled, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2469,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:areLimitsEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2469,
                    39
                ],
                "name": "areLimitsEnabled",
                "rawdesc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:areLimitsEnabled)",
                "start": [
                    2469,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current joint angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointAngle)\n\n@*return* `angle` — The joint angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2478,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2478,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGet the current joint angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointAngle)\n\n@*return* `angle` — The joint angle in radians.",
                    "finish": [
                        2478,
                        42
                    ],
                    "rawdesc": "\nGet the current joint angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointAngle)",
                    "returns": [
                        {
                            "desc": "The joint angle in radians.",
                            "name": "angle",
                            "rawdesc": "The joint angle in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2478,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getJointAngle()\n  -> angle: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2478,
                    36
                ],
                "name": "getJointAngle",
                "rawdesc": "\nGet the current joint angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointAngle)",
                "start": [
                    2478,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointSpeed)\n\n@*return* `s` — Joint angle speed in radians/second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2487,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2487,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointSpeed)\n\n@*return* `s` — Joint angle speed in radians/second.",
                    "finish": [
                        2487,
                        42
                    ],
                    "rawdesc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointSpeed)",
                    "returns": [
                        {
                            "desc": "Joint angle speed in radians/second.",
                            "name": "s",
                            "rawdesc": "Joint angle speed in radians/second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2487,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getJointSpeed()\n  -> s: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2487,
                    36
                ],
                "name": "getJointSpeed",
                "rawdesc": "\nGet the current joint angle speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getJointSpeed)",
                "start": [
                    2487,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLimits)\n\n@*return* `lower` — The lower limit, in radians.\n\n@*return* `upper` — The upper limit, in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2497,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2497,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLimits)\n\n@*return* `lower` — The lower limit, in radians.\n\n@*return* `upper` — The upper limit, in radians.",
                    "finish": [
                        2497,
                        38
                    ],
                    "rawdesc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLimits)",
                    "returns": [
                        {
                            "desc": "The lower limit, in radians.",
                            "name": "lower",
                            "rawdesc": "The lower limit, in radians.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The upper limit, in radians.",
                            "name": "upper",
                            "rawdesc": "The upper limit, in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2497,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getLimits()\n  -> lower: number\n  2. upper: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2497,
                    32
                ],
                "name": "getLimits",
                "rawdesc": "\nGets the joint limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLimits)",
                "start": [
                    2497,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLowerLimit)\n\n@*return* `lower` — The lower limit, in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2506,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2506,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLowerLimit)\n\n@*return* `lower` — The lower limit, in radians.",
                    "finish": [
                        2506,
                        42
                    ],
                    "rawdesc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLowerLimit)",
                    "returns": [
                        {
                            "desc": "The lower limit, in radians.",
                            "name": "lower",
                            "rawdesc": "The lower limit, in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2506,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getLowerLimit()\n  -> lower: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2506,
                    36
                ],
                "name": "getLowerLimit",
                "rawdesc": "\nGets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getLowerLimit)",
                "start": [
                    2506,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMaxMotorTorque)\n\n@*return* `f` — The maximum motor force, in Nm.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2515,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2515,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMaxMotorTorque)\n\n@*return* `f` — The maximum motor force, in Nm.",
                    "finish": [
                        2515,
                        46
                    ],
                    "rawdesc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMaxMotorTorque)",
                    "returns": [
                        {
                            "desc": "The maximum motor force, in Nm.",
                            "name": "f",
                            "rawdesc": "The maximum motor force, in Nm.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2515,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getMaxMotorTorque()\n  -> f: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2515,
                    40
                ],
                "name": "getMaxMotorTorque",
                "rawdesc": "\nGets the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMaxMotorTorque)",
                "start": [
                    2515,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorSpeed)\n\n@*return* `s` — The motor speed, radians per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2524,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2524,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorSpeed)\n\n@*return* `s` — The motor speed, radians per second.",
                    "finish": [
                        2524,
                        42
                    ],
                    "rawdesc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorSpeed)",
                    "returns": [
                        {
                            "desc": "The motor speed, radians per second.",
                            "name": "s",
                            "rawdesc": "The motor speed, radians per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2524,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getMotorSpeed()\n  -> s: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2524,
                    36
                ],
                "name": "getMotorSpeed",
                "rawdesc": "\nGets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorSpeed)",
                "start": [
                    2524,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorTorque)\n\n@*return* `f` — The current motor force, in Nm.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2533,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2533,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGet the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorTorque)\n\n@*return* `f` — The current motor force, in Nm.",
                    "finish": [
                        2533,
                        43
                    ],
                    "rawdesc": "\nGet the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorTorque)",
                    "returns": [
                        {
                            "desc": "The current motor force, in Nm.",
                            "name": "f",
                            "rawdesc": "The current motor force, in Nm.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2533,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getMotorTorque()\n  -> f: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2533,
                    37
                ],
                "name": "getMotorTorque",
                "rawdesc": "\nGet the current motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getMotorTorque)",
                "start": [
                    2533,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getReferenceAngle)\n\n@*return* `angle` — The reference angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2542,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2542,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getReferenceAngle)\n\n@*return* `angle` — The reference angle in radians.",
                    "finish": [
                        2542,
                        46
                    ],
                    "rawdesc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getReferenceAngle)",
                    "returns": [
                        {
                            "desc": "The reference angle in radians.",
                            "name": "angle",
                            "rawdesc": "The reference angle in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2542,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getReferenceAngle()\n  -> angle: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2542,
                    40
                ],
                "name": "getReferenceAngle",
                "rawdesc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getReferenceAngle)",
                "start": [
                    2542,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getUpperLimit)\n\n@*return* `upper` — The upper limit, in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2551,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2551,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getUpperLimit)\n\n@*return* `upper` — The upper limit, in radians.",
                    "finish": [
                        2551,
                        42
                    ],
                    "rawdesc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getUpperLimit)",
                    "returns": [
                        {
                            "desc": "The upper limit, in radians.",
                            "name": "upper",
                            "rawdesc": "The upper limit, in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2551,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:getUpperLimit()\n  -> upper: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2551,
                    36
                ],
                "name": "getUpperLimit",
                "rawdesc": "\nGets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:getUpperLimit)",
                "start": [
                    2551,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:hasLimitsEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2560,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2560,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:hasLimitsEnabled)\n\n@*return* `enabled` — True if enabled, false otherwise.",
                    "finish": [
                        2560,
                        45
                    ],
                    "rawdesc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:hasLimitsEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false otherwise.",
                            "name": "enabled",
                            "rawdesc": "True if enabled, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2560,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:hasLimitsEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2560,
                    39
                ],
                "name": "hasLimitsEnabled",
                "rawdesc": "\nChecks whether limits are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:hasLimitsEnabled)",
                "start": [
                    2560,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:isMotorEnabled)\n\n@*return* `enabled` — True if enabled, false if disabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2569,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2569,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "desc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:isMotorEnabled)\n\n@*return* `enabled` — True if enabled, false if disabled.",
                    "finish": [
                        2569,
                        43
                    ],
                    "rawdesc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:isMotorEnabled)",
                    "returns": [
                        {
                            "desc": "True if enabled, false if disabled.",
                            "name": "enabled",
                            "rawdesc": "True if enabled, false if disabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2569,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:isMotorEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2569,
                    37
                ],
                "name": "isMotorEnabled",
                "rawdesc": "\nChecks whether the motor is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:isMotorEnabled)",
                "start": [
                    2569,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimits)\n\n@*param* `lower` — The lower limit, in radians.\n\n@*param* `upper` — The upper limit, in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2579,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2579,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "The lower limit, in radians.",
                            "finish": [
                                2579,
                                38
                            ],
                            "name": "lower",
                            "rawdesc": "The lower limit, in radians.",
                            "start": [
                                2579,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The upper limit, in radians.",
                            "finish": [
                                2579,
                                45
                            ],
                            "name": "upper",
                            "rawdesc": "The upper limit, in radians.",
                            "start": [
                                2579,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimits)\n\n@*param* `lower` — The lower limit, in radians.\n\n@*param* `upper` — The upper limit, in radians.",
                    "finish": [
                        2579,
                        50
                    ],
                    "rawdesc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimits)",
                    "start": [
                        2579,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setLimits(lower: number, upper: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2579,
                    32
                ],
                "name": "setLimits",
                "rawdesc": "\nSets the limits.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimits)",
                "start": [
                    2579,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimitsEnabled)\n\n@*param* `enable` — True to enable, false to disable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2588,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2588,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "True to enable, false to disable.",
                            "finish": [
                                2588,
                                46
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable, false to disable.",
                            "start": [
                                2588,
                                40
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimitsEnabled)\n\n@*param* `enable` — True to enable, false to disable.",
                    "finish": [
                        2588,
                        51
                    ],
                    "rawdesc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimitsEnabled)",
                    "start": [
                        2588,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setLimitsEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2588,
                    39
                ],
                "name": "setLimitsEnabled",
                "rawdesc": "\nEnables/disables the joint limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLimitsEnabled)",
                "start": [
                    2588,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLowerLimit)\n\n@*param* `lower` — The lower limit, in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2597,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2597,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "The lower limit, in radians.",
                            "finish": [
                                2597,
                                42
                            ],
                            "name": "lower",
                            "rawdesc": "The lower limit, in radians.",
                            "start": [
                                2597,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLowerLimit)\n\n@*param* `lower` — The lower limit, in radians.",
                    "finish": [
                        2597,
                        47
                    ],
                    "rawdesc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLowerLimit)",
                    "start": [
                        2597,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setLowerLimit(lower: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2597,
                    36
                ],
                "name": "setLowerLimit",
                "rawdesc": "\nSets the lower limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setLowerLimit)",
                "start": [
                    2597,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMaxMotorTorque)\n\n@*param* `f` — The maximum motor force, in Nm.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2606,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2606,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "The maximum motor force, in Nm.",
                            "finish": [
                                2606,
                                42
                            ],
                            "name": "f",
                            "rawdesc": "The maximum motor force, in Nm.",
                            "start": [
                                2606,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMaxMotorTorque)\n\n@*param* `f` — The maximum motor force, in Nm.",
                    "finish": [
                        2606,
                        47
                    ],
                    "rawdesc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMaxMotorTorque)",
                    "start": [
                        2606,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setMaxMotorTorque(f: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2606,
                    40
                ],
                "name": "setMaxMotorTorque",
                "rawdesc": "\nSet the maximum motor force.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMaxMotorTorque)",
                "start": [
                    2606,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorEnabled)\n\n@*param* `enable` — True to enable, false to disable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2615,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2615,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "True to enable, false to disable.",
                            "finish": [
                                2615,
                                45
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable, false to disable.",
                            "start": [
                                2615,
                                39
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorEnabled)\n\n@*param* `enable` — True to enable, false to disable.",
                    "finish": [
                        2615,
                        50
                    ],
                    "rawdesc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorEnabled)",
                    "start": [
                        2615,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setMotorEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2615,
                    38
                ],
                "name": "setMotorEnabled",
                "rawdesc": "\nEnables/disables the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorEnabled)",
                "start": [
                    2615,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorSpeed)\n\n@*param* `s` — The motor speed, radians per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2624,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2624,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "The motor speed, radians per second.",
                            "finish": [
                                2624,
                                38
                            ],
                            "name": "s",
                            "rawdesc": "The motor speed, radians per second.",
                            "start": [
                                2624,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorSpeed)\n\n@*param* `s` — The motor speed, radians per second.",
                    "finish": [
                        2624,
                        43
                    ],
                    "rawdesc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorSpeed)",
                    "start": [
                        2624,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setMotorSpeed(s: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2624,
                    36
                ],
                "name": "setMotorSpeed",
                "rawdesc": "\nSets the motor speed.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setMotorSpeed)",
                "start": [
                    2624,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setUpperLimit)\n\n@*param* `upper` — The upper limit, in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2633,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAllow two Bodies to revolve around a shared point.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2633,
                                8
                            ],
                            "type": "self",
                            "view": "love.RevoluteJoint"
                        },
                        {
                            "desc": "The upper limit, in radians.",
                            "finish": [
                                2633,
                                42
                            ],
                            "name": "upper",
                            "rawdesc": "The upper limit, in radians.",
                            "start": [
                                2633,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setUpperLimit)\n\n@*param* `upper` — The upper limit, in radians.",
                    "finish": [
                        2633,
                        47
                    ],
                    "rawdesc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setUpperLimit)",
                    "start": [
                        2633,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RevoluteJoint:setUpperLimit(upper: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2633,
                    36
                ],
                "name": "setUpperLimit",
                "rawdesc": "\nSets the upper limit.\n\n\n[Open in Browser](https://love2d.org/wiki/RevoluteJoint:setUpperLimit)",
                "start": [
                    2633,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.RevoluteJoint",
        "type": "type",
        "view": "love.RevoluteJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe RopeJoint enforces a maximum distance between two points on two bodies. It has no other effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2641,
                            36
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2641,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2641,
                            49
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2641,
                            38
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2641,
                    49
                ],
                "rawdesc": "\nThe RopeJoint enforces a maximum distance between two points on two bodies. It has no other effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2641,
                    10
                ],
                "type": "doc.class",
                "view": "love.RopeJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:getMaxLength)\n\n@*return* `maxLength` — The maximum length of the RopeJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe RopeJoint enforces a maximum distance between two points on two bodies. It has no other effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2651,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe RopeJoint enforces a maximum distance between two points on two bodies. It has no other effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2651,
                                8
                            ],
                            "type": "self",
                            "view": "love.RopeJoint"
                        }
                    ],
                    "desc": "\nGets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:getMaxLength)\n\n@*return* `maxLength` — The maximum length of the RopeJoint.",
                    "finish": [
                        2651,
                        37
                    ],
                    "rawdesc": "\nGets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:getMaxLength)",
                    "returns": [
                        {
                            "desc": "The maximum length of the RopeJoint.",
                            "name": "maxLength",
                            "rawdesc": "The maximum length of the RopeJoint.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2651,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RopeJoint:getMaxLength()\n  -> maxLength: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2651,
                    31
                ],
                "name": "getMaxLength",
                "rawdesc": "\nGets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:getMaxLength)",
                "start": [
                    2651,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:setMaxLength)\n\n@*param* `maxLength` — The new maximum length of the RopeJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe RopeJoint enforces a maximum distance between two points on two bodies. It has no other effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2660,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe RopeJoint enforces a maximum distance between two points on two bodies. It has no other effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2660,
                                8
                            ],
                            "type": "self",
                            "view": "love.RopeJoint"
                        },
                        {
                            "desc": "The new maximum length of the RopeJoint.",
                            "finish": [
                                2660,
                                41
                            ],
                            "name": "maxLength",
                            "rawdesc": "The new maximum length of the RopeJoint.",
                            "start": [
                                2660,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:setMaxLength)\n\n@*param* `maxLength` — The new maximum length of the RopeJoint.",
                    "finish": [
                        2660,
                        46
                    ],
                    "rawdesc": "\nSets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:setMaxLength)",
                    "start": [
                        2660,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.RopeJoint:setMaxLength(maxLength: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2660,
                    31
                ],
                "name": "setMaxLength",
                "rawdesc": "\nSets the maximum length of a RopeJoint.\n\n\n[Open in Browser](https://love2d.org/wiki/RopeJoint:setMaxLength)",
                "start": [
                    2660,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.RopeJoint",
        "type": "type",
        "view": "love.RopeJoint"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nlove.Scancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "finish": [
                    1483,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nlove.Scancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "start": [
                    707,
                    10
                ],
                "type": "doc.alias",
                "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
            }
        ],
        "fields": [],
        "name": "love.Scancode",
        "type": "type",
        "view": "love.Scancode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2585,
                            34
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2585,
                            23
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2585,
                    34
                ],
                "rawdesc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    2585,
                    10
                ],
                "type": "doc.class",
                "view": "love.Shader",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns any warning and error messages from compiling the shader code. This can be used for debugging your shaders if there's anything the graphics hardware doesn't like.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:getWarnings)\n\n@*return* `warnings` — Warning and error messages (if any).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2595,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2595,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shader"
                        }
                    ],
                    "desc": "\nReturns any warning and error messages from compiling the shader code. This can be used for debugging your shaders if there's anything the graphics hardware doesn't like.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:getWarnings)\n\n@*return* `warnings` — Warning and error messages (if any).",
                    "finish": [
                        2595,
                        33
                    ],
                    "rawdesc": "\nReturns any warning and error messages from compiling the shader code. This can be used for debugging your shaders if there's anything the graphics hardware doesn't like.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:getWarnings)",
                    "returns": [
                        {
                            "desc": "Warning and error messages (if any).",
                            "name": "warnings",
                            "rawdesc": "Warning and error messages (if any).",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        2595,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shader:getWarnings()\n  -> warnings: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2595,
                    27
                ],
                "name": "getWarnings",
                "rawdesc": "\nReturns any warning and error messages from compiling the shader code. This can be used for debugging your shaders if there's anything the graphics hardware doesn't like.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:getWarnings)",
                "start": [
                    2595,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether a uniform / extern variable exists in the Shader.\n\nIf a graphics driver's shader compiler determines that a uniform / extern variable doesn't affect the final output of the shader, it may optimize the variable out. This function will return false in that case.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:hasUniform)\n\n@*param* `name` — The name of the uniform variable.\n\n@*return* `hasuniform` — Whether the uniform exists in the shader and affects its final output.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2607,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2607,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shader"
                        },
                        {
                            "desc": "The name of the uniform variable.",
                            "finish": [
                                2607,
                                31
                            ],
                            "name": "name",
                            "rawdesc": "The name of the uniform variable.",
                            "start": [
                                2607,
                                27
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets whether a uniform / extern variable exists in the Shader.\n\nIf a graphics driver's shader compiler determines that a uniform / extern variable doesn't affect the final output of the shader, it may optimize the variable out. This function will return false in that case.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:hasUniform)\n\n@*param* `name` — The name of the uniform variable.\n\n@*return* `hasuniform` — Whether the uniform exists in the shader and affects its final output.",
                    "finish": [
                        2607,
                        36
                    ],
                    "rawdesc": "\nGets whether a uniform / extern variable exists in the Shader.\n\nIf a graphics driver's shader compiler determines that a uniform / extern variable doesn't affect the final output of the shader, it may optimize the variable out. This function will return false in that case.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:hasUniform)",
                    "returns": [
                        {
                            "desc": "Whether the uniform exists in the shader and affects its final output.",
                            "name": "hasuniform",
                            "rawdesc": "Whether the uniform exists in the shader and affects its final output.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2607,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shader:hasUniform(name: string)\n  -> hasuniform: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2607,
                    26
                ],
                "name": "hasUniform",
                "rawdesc": "\nGets whether a uniform / extern variable exists in the Shader.\n\nIf a graphics driver's shader compiler determines that a uniform / extern variable doesn't affect the final output of the shader, it may optimize the variable out. This function will return false in that case.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:hasUniform)",
                "start": [
                    2607,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSends one or more values to a special (''uniform'') variable inside the shader. Uniform variables have to be marked using the ''uniform'' or ''extern'' keyword, e.g.\n\nuniform float time;  // 'float' is the typical number type used in GLSL shaders.\n\nuniform float varsvec2 light_pos;\n\nuniform vec4 colors[4;\n\nThe corresponding send calls would be\n\nshader:send('time', t)\n\nshader:send('vars',a,b)\n\nshader:send('light_pos', {light_x, light_y})\n\nshader:send('colors', {r1, g1, b1, a1},  {r2, g2, b2, a2},  {r3, g3, b3, a3},  {r4, g4, b4, a4})\n\nUniform / extern variables are read-only in the shader code and remain constant until modified by a Shader:send call. Uniform variables can be accessed in both the Vertex and Pixel components of a shader, as long as the variable is declared in each.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:send)\n\n\n---\n\n@*param* `name` — Name of the number to send to the shader.\n\n@*param* `number` — Number to send to store in the uniform variable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2644,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2644,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shader"
                        },
                        {
                            "desc": "Name of the number to send to the shader.",
                            "finish": [
                                2644,
                                25
                            ],
                            "name": "name",
                            "rawdesc": "Name of the number to send to the shader.",
                            "start": [
                                2644,
                                21
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Number to send to store in the uniform variable.",
                            "finish": [
                                2644,
                                33
                            ],
                            "name": "number",
                            "rawdesc": "Number to send to store in the uniform variable.",
                            "start": [
                                2644,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                2644,
                                38
                            ],
                            "start": [
                                2644,
                                35
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSends one or more values to a special (''uniform'') variable inside the shader. Uniform variables have to be marked using the ''uniform'' or ''extern'' keyword, e.g.\n\nuniform float time;  // 'float' is the typical number type used in GLSL shaders.\n\nuniform float varsvec2 light_pos;\n\nuniform vec4 colors[4;\n\nThe corresponding send calls would be\n\nshader:send('time', t)\n\nshader:send('vars',a,b)\n\nshader:send('light_pos', {light_x, light_y})\n\nshader:send('colors', {r1, g1, b1, a1},  {r2, g2, b2, a2},  {r3, g3, b3, a3},  {r4, g4, b4, a4})\n\nUniform / extern variables are read-only in the shader code and remain constant until modified by a Shader:send call. Uniform variables can be accessed in both the Vertex and Pixel components of a shader, as long as the variable is declared in each.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:send)\n\n\n---\n\n@*param* `name` — Name of the number to send to the shader.\n\n@*param* `number` — Number to send to store in the uniform variable.",
                    "finish": [
                        2644,
                        43
                    ],
                    "rawdesc": "\nSends one or more values to a special (''uniform'') variable inside the shader. Uniform variables have to be marked using the ''uniform'' or ''extern'' keyword, e.g.\n\nuniform float time;  // 'float' is the typical number type used in GLSL shaders.\n\nuniform float varsvec2 light_pos;\n\nuniform vec4 colors[4;\n\nThe corresponding send calls would be\n\nshader:send('time', t)\n\nshader:send('vars',a,b)\n\nshader:send('light_pos', {light_x, light_y})\n\nshader:send('colors', {r1, g1, b1, a1},  {r2, g2, b2, a2},  {r3, g3, b3, a3},  {r4, g4, b4, a4})\n\nUniform / extern variables are read-only in the shader code and remain constant until modified by a Shader:send call. Uniform variables can be accessed in both the Vertex and Pixel components of a shader, as long as the variable is declared in each.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:send)",
                    "start": [
                        2644,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shader:send(name: string, number: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2644,
                    20
                ],
                "name": "send",
                "rawdesc": "\nSends one or more values to a special (''uniform'') variable inside the shader. Uniform variables have to be marked using the ''uniform'' or ''extern'' keyword, e.g.\n\nuniform float time;  // 'float' is the typical number type used in GLSL shaders.\n\nuniform float varsvec2 light_pos;\n\nuniform vec4 colors[4;\n\nThe corresponding send calls would be\n\nshader:send('time', t)\n\nshader:send('vars',a,b)\n\nshader:send('light_pos', {light_x, light_y})\n\nshader:send('colors', {r1, g1, b1, a1},  {r2, g2, b2, a2},  {r3, g3, b3, a3},  {r4, g4, b4, a4})\n\nUniform / extern variables are read-only in the shader code and remain constant until modified by a Shader:send call. Uniform variables can be accessed in both the Vertex and Pixel components of a shader, as long as the variable is declared in each.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:send)",
                "start": [
                    2644,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSends one or more colors to a special (''extern'' / ''uniform'') vec3 or vec4 variable inside the shader. The color components must be in the range of 1. The colors are gamma-corrected if global gamma-correction is enabled.\n\nExtern variables must be marked using the ''extern'' keyword, e.g.\n\nextern vec4 Color;\n\nThe corresponding sendColor call would be\n\nshader:sendColor('Color', {r, g, b, a})\n\nExtern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:sendColor)\n\n@*param* `name` — The name of the color extern variable to send to in the shader.\n\n@*param* `color` — A table with red, green, blue, and optional alpha color components in the range of 1 to send to the extern as a vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2667,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.\n\nPotential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn: https://github.com/vrld/moonshine\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2667,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shader"
                        },
                        {
                            "desc": "The name of the color extern variable to send to in the shader.",
                            "finish": [
                                2667,
                                30
                            ],
                            "name": "name",
                            "rawdesc": "The name of the color extern variable to send to in the shader.",
                            "start": [
                                2667,
                                26
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A table with red, green, blue, and optional alpha color components in the range of 1 to send to the extern as a vector.",
                            "finish": [
                                2667,
                                37
                            ],
                            "name": "color",
                            "rawdesc": "A table with red, green, blue, and optional alpha color components in the range of 1 to send to the extern as a vector.",
                            "start": [
                                2667,
                                32
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                2667,
                                42
                            ],
                            "start": [
                                2667,
                                39
                            ],
                            "type": "...",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSends one or more colors to a special (''extern'' / ''uniform'') vec3 or vec4 variable inside the shader. The color components must be in the range of 1. The colors are gamma-corrected if global gamma-correction is enabled.\n\nExtern variables must be marked using the ''extern'' keyword, e.g.\n\nextern vec4 Color;\n\nThe corresponding sendColor call would be\n\nshader:sendColor('Color', {r, g, b, a})\n\nExtern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:sendColor)\n\n@*param* `name` — The name of the color extern variable to send to in the shader.\n\n@*param* `color` — A table with red, green, blue, and optional alpha color components in the range of 1 to send to the extern as a vector.",
                    "finish": [
                        2667,
                        47
                    ],
                    "rawdesc": "\nSends one or more colors to a special (''extern'' / ''uniform'') vec3 or vec4 variable inside the shader. The color components must be in the range of 1. The colors are gamma-corrected if global gamma-correction is enabled.\n\nExtern variables must be marked using the ''extern'' keyword, e.g.\n\nextern vec4 Color;\n\nThe corresponding sendColor call would be\n\nshader:sendColor('Color', {r, g, b, a})\n\nExtern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:sendColor)",
                    "start": [
                        2667,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shader:sendColor(name: string, color: table, ...table)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2667,
                    25
                ],
                "name": "sendColor",
                "rawdesc": "\nSends one or more colors to a special (''extern'' / ''uniform'') vec3 or vec4 variable inside the shader. The color components must be in the range of 1. The colors are gamma-corrected if global gamma-correction is enabled.\n\nExtern variables must be marked using the ''extern'' keyword, e.g.\n\nextern vec4 Color;\n\nThe corresponding sendColor call would be\n\nshader:sendColor('Color', {r, g, b, a})\n\nExtern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Shader:sendColor)",
                "start": [
                    2667,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Shader",
        "type": "type",
        "view": "love.Shader"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2672,
                            33
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2672,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2672,
                    33
                ],
                "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2672,
                    10
                ],
                "type": "doc.class",
                "view": "love.Shape",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2689,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2689,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2689,
                                29
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2689,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2689,
                                33
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2689,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2689,
                                37
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2689,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child to compute the bounding box of.",
                            "finish": [
                                2689,
                                49
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child to compute the bounding box of.",
                            "start": [
                                2689,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child to compute the bounding box of.\n\n@*return* `topLeftX` — The x position of the top-left point.\n\n@*return* `topLeftY` — The y position of the top-left point.\n\n@*return* `bottomRightX` — The x position of the bottom-right point.\n\n@*return* `bottomRightY` — The y position of the bottom-right point.",
                    "finish": [
                        2689,
                        54
                    ],
                    "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                    "returns": [
                        {
                            "desc": "The x position of the top-left point.",
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2689,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeAABB(tx: number, ty: number, tr: number, childIndex?: number)\n  -> topLeftX: number\n  2. topLeftY: number\n  3. bottomRightX: number\n  4. bottomRightY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2689,
                    26
                ],
                "name": "computeAABB",
                "rawdesc": "\nReturns the points of the bounding box for the transformed shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeAABB)",
                "start": [
                    2689,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2702,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2702,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The shape density.",
                            "finish": [
                                2702,
                                34
                            ],
                            "name": "density",
                            "rawdesc": "The shape density.",
                            "start": [
                                2702,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)\n\n@*param* `density` — The shape density.\n\n@*return* `x` — The x postition of the center of mass.\n\n@*return* `y` — The y postition of the center of mass.\n\n@*return* `mass` — The mass of the shape.\n\n@*return* `inertia` — The rotational inertia.",
                    "finish": [
                        2702,
                        39
                    ],
                    "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                    "returns": [
                        {
                            "desc": "The x postition of the center of mass.",
                            "name": "x",
                            "rawdesc": "The x postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y postition of the center of mass.",
                            "name": "y",
                            "rawdesc": "The y postition of the center of mass.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The mass of the shape.",
                            "name": "mass",
                            "rawdesc": "The mass of the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The rotational inertia.",
                            "name": "inertia",
                            "rawdesc": "The rotational inertia.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2702,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:computeMass(density: number)\n  -> x: number\n  2. y: number\n  3. mass: number\n  4. inertia: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2702,
                    26
                ],
                "name": "computeMass",
                "rawdesc": "\nComputes the mass properties for the shape with the specified density.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:computeMass)",
                "start": [
                    2702,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2711,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2711,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)\n\n@*return* `count` — The number of children.",
                    "finish": [
                        2711,
                        34
                    ],
                    "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                    "returns": [
                        {
                            "desc": "The number of children.",
                            "name": "count",
                            "rawdesc": "The number of children.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2711,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getChildCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2711,
                    28
                ],
                "name": "getChildCount",
                "rawdesc": "\nReturns the number of children the shape has.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getChildCount)",
                "start": [
                    2711,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2720,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2720,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)\n\n@*return* `radius` — The radius of the shape.",
                    "finish": [
                        2720,
                        30
                    ],
                    "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                    "returns": [
                        {
                            "desc": "The radius of the shape.",
                            "name": "radius",
                            "rawdesc": "The radius of the shape.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2720,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getRadius()\n  -> radius: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2720,
                    24
                ],
                "name": "getRadius",
                "rawdesc": "\nGets the radius of the shape.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getRadius)",
                "start": [
                    2720,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2731,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2731,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        }
                    ],
                    "desc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n@*return* `type` — The type of the Shape.\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "finish": [
                        2731,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Shape.",
                            "name": "type",
                            "rawdesc": "The type of the Shape.",
                            "type": "function.return",
                            "view": "\"chain\"|\"circle\"|\"edge\"|\"polygon\""
                        }
                    ],
                    "start": [
                        2731,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:getType()\n  -> type: \"chain\"|\"circle\"|\"edge\"|\"polygon\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2731,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the Shape.\n\nThis function can be useful for conditional debug drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:getType)\n\n\n```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \ntype:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "start": [
                    2731,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2759,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2759,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The x position of the input line starting point.",
                            "finish": [
                                2759,
                                25
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the input line starting point.",
                            "start": [
                                2759,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line starting point.",
                            "finish": [
                                2759,
                                29
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the input line starting point.",
                            "start": [
                                2759,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the input line end point.",
                            "finish": [
                                2759,
                                33
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the input line end point.",
                            "start": [
                                2759,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the input line end point.",
                            "finish": [
                                2759,
                                37
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the input line end point.",
                            "start": [
                                2759,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Ray length parameter.",
                            "finish": [
                                2759,
                                50
                            ],
                            "name": "maxFraction",
                            "rawdesc": "Ray length parameter.",
                            "start": [
                                2759,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the x-axis.",
                            "finish": [
                                2759,
                                54
                            ],
                            "name": "tx",
                            "rawdesc": "The translation of the shape on the x-axis.",
                            "start": [
                                2759,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation of the shape on the y-axis.",
                            "finish": [
                                2759,
                                58
                            ],
                            "name": "ty",
                            "rawdesc": "The translation of the shape on the y-axis.",
                            "start": [
                                2759,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shape rotation.",
                            "finish": [
                                2759,
                                62
                            ],
                            "name": "tr",
                            "rawdesc": "The shape rotation.",
                            "start": [
                                2759,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the child the ray gets cast against.",
                            "finish": [
                                2759,
                                74
                            ],
                            "name": "childIndex",
                            "rawdesc": "The index of the child the ray gets cast against.",
                            "start": [
                                2759,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)\n\n@*param* `x1` — The x position of the input line starting point.\n\n@*param* `y1` — The y position of the input line starting point.\n\n@*param* `x2` — The x position of the input line end point.\n\n@*param* `y2` — The y position of the input line end point.\n\n@*param* `maxFraction` — Ray length parameter.\n\n@*param* `tx` — The translation of the shape on the x-axis.\n\n@*param* `ty` — The translation of the shape on the y-axis.\n\n@*param* `tr` — The shape rotation.\n\n@*param* `childIndex` — The index of the child the ray gets cast against.\n\n@*return* `xn` — The x component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `yn` — The y component of the normal vector of the edge where the ray hit the shape.\n\n@*return* `fraction` — The position on the input line where the intersection happened as a factor of the line length.",
                    "finish": [
                        2759,
                        79
                    ],
                    "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                    "returns": [
                        {
                            "desc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "name": "xn",
                            "rawdesc": "The x component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "name": "yn",
                            "rawdesc": "The y component of the normal vector of the edge where the ray hit the shape.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "name": "fraction",
                            "rawdesc": "The position on the input line where the intersection happened as a factor of the line length.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2759,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:rayCast(x1: number, y1: number, x2: number, y2: number, maxFraction: number, tx: number, ty: number, tr: number, childIndex?: number)\n  -> xn: number\n  2. yn: number\n  3. fraction: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2759,
                    22
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray against the shape and returns the surface normal vector and the line position where the ray hit. If the ray missed the shape, nil will be returned. The Shape can be transformed to get it into the desired position.\n\nThe ray starts on the first point of the input line and goes towards the second point of the line. The fourth argument is the maximum distance the ray is going to travel as a scale factor of the input line length.\n\nThe childIndex parameter is used to specify which child of a parent shape, such as a ChainShape, will be ray casted. For ChainShapes, the index of 1 is the first edge on the chain. Ray casting a parent shape will only test the child specified so if you want to test every shape of the parent, you must loop through all of its children.\n\nThe world position of the impact can be calculated by multiplying the line vector with the third return value and adding it to the line starting point.\n\nhitx, hity = x1 + (x2 - x1) * fraction, y1 + (y2 - y1) * fraction\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:rayCast)",
                "start": [
                    2759,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                "extends": {
                    "args": [
                        {
                            "desc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2773,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nShapes are solid 2d geometrical objects which handle the mass and collision of a Body in love.physics.\n\nShapes are attached to a Body via a Fixture. The Shape object is copied when this happens.\n\nThe Shape's position is relative to the position of the Body it has been attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2773,
                                8
                            ],
                            "type": "self",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "Translates the shape along the x-axis.",
                            "finish": [
                                2773,
                                27
                            ],
                            "name": "tx",
                            "rawdesc": "Translates the shape along the x-axis.",
                            "start": [
                                2773,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Translates the shape along the y-axis.",
                            "finish": [
                                2773,
                                31
                            ],
                            "name": "ty",
                            "rawdesc": "Translates the shape along the y-axis.",
                            "start": [
                                2773,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Rotates the shape.",
                            "finish": [
                                2773,
                                35
                            ],
                            "name": "tr",
                            "rawdesc": "Rotates the shape.",
                            "start": [
                                2773,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the point.",
                            "finish": [
                                2773,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x-component of the point.",
                            "start": [
                                2773,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the point.",
                            "finish": [
                                2773,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y-component of the point.",
                            "start": [
                                2773,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)\n\n@*param* `tx` — Translates the shape along the x-axis.\n\n@*param* `ty` — Translates the shape along the y-axis.\n\n@*param* `tr` — Rotates the shape.\n\n@*param* `x` — The x-component of the point.\n\n@*param* `y` — The y-component of the point.\n\n@*return* `hit` — True if inside, false if outside",
                    "finish": [
                        2773,
                        46
                    ],
                    "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                    "returns": [
                        {
                            "desc": "True if inside, false if outside",
                            "name": "hit",
                            "rawdesc": "True if inside, false if outside",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2773,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Shape:testPoint(tx: number, ty: number, tr: number, x: number, y: number)\n  -> hit: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2773,
                    24
                ],
                "name": "testPoint",
                "rawdesc": "\nThis is particularly useful for mouse interaction with the shapes. By looping through all shapes and testing the mouse position with this function, we can find which shapes the mouse touches.\n\n\n[Open in Browser](https://love2d.org/wiki/Shape:testPoint)",
                "start": [
                    2773,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Shape",
        "type": "type",
        "view": "love.Shape"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \nlove.ShapeType:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "finish": [
                    3280,
                    12
                ],
                "rawdesc": "```lua\n-- \n-- The different types of Shapes, as returned by Shape:getType.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ShapeType)\n-- \nlove.ShapeType:\n    | \"circle\" -- The Shape is a CircleShape.\n    | \"polygon\" -- The Shape is a PolygonShape.\n    | \"edge\" -- The Shape is a EdgeShape.\n    | \"chain\" -- The Shape is a ChainShape.\n```",
                "start": [
                    3264,
                    10
                ],
                "type": "doc.alias",
                "view": "\"chain\"|\"circle\"|\"edge\"|\"polygon\""
            }
        ],
        "fields": [],
        "name": "love.ShapeType",
        "type": "type",
        "view": "love.ShapeType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            120,
                            35
                        ],
                        "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            120,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Data"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            120,
                            48
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            120,
                            37
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    120,
                    48
                ],
                "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "start": [
                    120,
                    10
                ],
                "type": "doc.class",
                "view": "love.SoundData",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                70,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                70,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)\n\n@*return* `clone` — The new copy.",
                    "finish": [
                        70,
                        25
                    ],
                    "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                    "returns": [
                        {
                            "desc": "The new copy.",
                            "name": "clone",
                            "rawdesc": "The new copy.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:clone()\n  -> clone: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    70,
                    19
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of the Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:clone)",
                "start": [
                    70,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getBitDepth)\n\n@*return* `bitdepth` — Either 8, or 16.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                130,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                130,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        }
                    ],
                    "desc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getBitDepth)\n\n@*return* `bitdepth` — Either 8, or 16.",
                    "finish": [
                        130,
                        36
                    ],
                    "rawdesc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getBitDepth)",
                    "returns": [
                        {
                            "desc": "Either 8, or 16.",
                            "name": "bitdepth",
                            "rawdesc": "Either 8, or 16.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        130,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:getBitDepth()\n  -> bitdepth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    130,
                    30
                ],
                "name": "getBitDepth",
                "rawdesc": "\nReturns the number of bits per sample.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getBitDepth)",
                "start": [
                    130,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of channels in the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getChannelCount)\n\n@*return* `channels` — 1 for mono, 2 for stereo.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                139,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                139,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        }
                    ],
                    "desc": "\nReturns the number of channels in the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getChannelCount)\n\n@*return* `channels` — 1 for mono, 2 for stereo.",
                    "finish": [
                        139,
                        40
                    ],
                    "rawdesc": "\nReturns the number of channels in the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getChannelCount)",
                    "returns": [
                        {
                            "desc": "1 for mono, 2 for stereo.",
                            "name": "channels",
                            "rawdesc": "1 for mono, 2 for stereo.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        139,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:getChannelCount()\n  -> channels: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    139,
                    34
                ],
                "name": "getChannelCount",
                "rawdesc": "\nReturns the number of channels in the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getChannelCount)",
                "start": [
                    139,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the duration of the sound data.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getDuration)\n\n@*return* `duration` — The duration of the sound data in seconds.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                148,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                148,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        }
                    ],
                    "desc": "\nGets the duration of the sound data.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getDuration)\n\n@*return* `duration` — The duration of the sound data in seconds.",
                    "finish": [
                        148,
                        36
                    ],
                    "rawdesc": "\nGets the duration of the sound data.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getDuration)",
                    "returns": [
                        {
                            "desc": "The duration of the sound data in seconds.",
                            "name": "duration",
                            "rawdesc": "The duration of the sound data in seconds.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        148,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:getDuration()\n  -> duration: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    148,
                    30
                ],
                "name": "getDuration",
                "rawdesc": "\nGets the duration of the sound data.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getDuration)",
                "start": [
                    148,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                81,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                81,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)\n\n@*return* `pointer` — A raw void* pointer to the Data, or nil if FFI is unavailable.",
                    "finish": [
                        81,
                        33
                    ],
                    "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                    "returns": [
                        {
                            "desc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "name": "pointer",
                            "rawdesc": "A raw void* pointer to the Data, or nil if FFI is unavailable.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        }
                    ],
                    "start": [
                        81,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getFFIPointer()\n  -> pointer: ffi.cdata*"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    81,
                    27
                ],
                "name": "getFFIPointer",
                "rawdesc": "\nGets an FFI pointer to the Data.\n\nThis function should be preferred instead of Data:getPointer because the latter uses light userdata which can't store more all possible memory addresses on some new ARM64 architectures, when LuaJIT is used.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getFFIPointer)",
                "start": [
                    81,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                90,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                90,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)\n\n@*return* `pointer` — A raw pointer to the Data.",
                    "finish": [
                        90,
                        30
                    ],
                    "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                    "returns": [
                        {
                            "desc": "A raw pointer to the Data.",
                            "name": "pointer",
                            "rawdesc": "A raw pointer to the Data.",
                            "type": "function.return",
                            "view": "lightuserdata"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getPointer()\n  -> pointer: lightuserdata"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    90,
                    24
                ],
                "name": "getPointer",
                "rawdesc": "\nGets a pointer to the Data. Can be used with libraries such as LuaJIT's FFI.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getPointer)",
                "start": [
                    90,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSample)\n\n\n---\n\n@*param* `i` — An integer value specifying the position of the sample (starting at 0).\n\n@*return* `sample` — The normalized samplepoint (range -1.0 to 1.0).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                159,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                159,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        },
                        {
                            "desc": "An integer value specifying the position of the sample (starting at 0).",
                            "finish": [
                                159,
                                30
                            ],
                            "name": "i",
                            "rawdesc": "An integer value specifying the position of the sample (starting at 0).",
                            "start": [
                                159,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSample)\n\n\n---\n\n@*param* `i` — An integer value specifying the position of the sample (starting at 0).\n\n@*return* `sample` — The normalized samplepoint (range -1.0 to 1.0).",
                    "finish": [
                        159,
                        35
                    ],
                    "rawdesc": "\nGets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSample)",
                    "returns": [
                        {
                            "desc": "The normalized samplepoint (range -1.0 to 1.0).",
                            "name": "sample",
                            "rawdesc": "The normalized samplepoint (range -1.0 to 1.0).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        159,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:getSample(i: number)\n  -> sample: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    159,
                    28
                ],
                "name": "getSample",
                "rawdesc": "\nGets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSample)",
                "start": [
                    159,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of samples per channel of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleCount)\n\n@*return* `count` — Total number of samples.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                168,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                168,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        }
                    ],
                    "desc": "\nReturns the number of samples per channel of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleCount)\n\n@*return* `count` — Total number of samples.",
                    "finish": [
                        168,
                        39
                    ],
                    "rawdesc": "\nReturns the number of samples per channel of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleCount)",
                    "returns": [
                        {
                            "desc": "Total number of samples.",
                            "name": "count",
                            "rawdesc": "Total number of samples.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        168,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:getSampleCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    168,
                    33
                ],
                "name": "getSampleCount",
                "rawdesc": "\nReturns the number of samples per channel of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleCount)",
                "start": [
                    168,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the sample rate of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleRate)\n\n@*return* `rate` — Number of samples per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                177,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                177,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        }
                    ],
                    "desc": "\nReturns the sample rate of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleRate)\n\n@*return* `rate` — Number of samples per second.",
                    "finish": [
                        177,
                        38
                    ],
                    "rawdesc": "\nReturns the sample rate of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleRate)",
                    "returns": [
                        {
                            "desc": "Number of samples per second.",
                            "name": "rate",
                            "rawdesc": "Number of samples per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        177,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:getSampleRate()\n  -> rate: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    177,
                    32
                ],
                "name": "getSampleRate",
                "rawdesc": "\nReturns the sample rate of the SoundData.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:getSampleRate)",
                "start": [
                    177,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                99,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                99,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)\n\n@*return* `size` — The size of the Data in bytes.",
                    "finish": [
                        99,
                        27
                    ],
                    "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                    "returns": [
                        {
                            "desc": "The size of the Data in bytes.",
                            "name": "size",
                            "rawdesc": "The size of the Data in bytes.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    99,
                    21
                ],
                "name": "getSize",
                "rawdesc": "\nGets the Data's size in bytes.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getSize)",
                "start": [
                    99,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                108,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all data.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                108,
                                8
                            ],
                            "type": "self",
                            "view": "love.Data"
                        }
                    ],
                    "desc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)\n\n@*return* `data` — The raw data.",
                    "finish": [
                        108,
                        29
                    ],
                    "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                    "returns": [
                        {
                            "desc": "The raw data.",
                            "name": "data",
                            "rawdesc": "The raw data.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        108,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Data:getString()\n  -> data: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    108,
                    23
                ],
                "name": "getString",
                "rawdesc": "\nGets the full Data as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Data:getString)",
                "start": [
                    108,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:setSample)\n\n\n---\n\n@*param* `i` — An integer value specifying the position of the sample (starting at 0).\n\n@*param* `sample` — The normalized samplepoint (range -1.0 to 1.0).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "finish": [
                                188,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nContains raw audio samples.\n\nYou can not play SoundData back directly. You must wrap a Source object around it.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                            "start": [
                                188,
                                8
                            ],
                            "type": "self",
                            "view": "love.SoundData"
                        },
                        {
                            "desc": "An integer value specifying the position of the sample (starting at 0).",
                            "finish": [
                                188,
                                30
                            ],
                            "name": "i",
                            "rawdesc": "An integer value specifying the position of the sample (starting at 0).",
                            "start": [
                                188,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The normalized samplepoint (range -1.0 to 1.0).",
                            "finish": [
                                188,
                                38
                            ],
                            "name": "sample",
                            "rawdesc": "The normalized samplepoint (range -1.0 to 1.0).",
                            "start": [
                                188,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:setSample)\n\n\n---\n\n@*param* `i` — An integer value specifying the position of the sample (starting at 0).\n\n@*param* `sample` — The normalized samplepoint (range -1.0 to 1.0).",
                    "finish": [
                        188,
                        43
                    ],
                    "rawdesc": "\nSets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:setSample)",
                    "start": [
                        188,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SoundData:setSample(i: number, sample: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    188,
                    28
                ],
                "name": "setSample",
                "rawdesc": "\nSets the value of the sample-point at the specified position. For stereo SoundData objects, the data from the left and right channels are interleaved in that order.\n\n\n[Open in Browser](https://love2d.org/wiki/SoundData:setSample)",
                "start": [
                    188,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.SoundData",
        "type": "type",
        "view": "love.SoundData"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            398,
                            34
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            398,
                            23
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    398,
                    34
                ],
                "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "start": [
                    398,
                    10
                ],
                "type": "doc.class",
                "view": "love.Source",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates an identical copy of the Source in the stopped state.\n\nStatic Sources will use significantly less memory and take much less time to be created if Source:clone is used to create them instead of love.audio.newSource, so this method should be preferred when making multiple Sources which play the same sound.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:clone)\n\n@*return* `source` — The new identical copy of this Source.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                410,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                410,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nCreates an identical copy of the Source in the stopped state.\n\nStatic Sources will use significantly less memory and take much less time to be created if Source:clone is used to create them instead of love.audio.newSource, so this method should be preferred when making multiple Sources which play the same sound.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:clone)\n\n@*return* `source` — The new identical copy of this Source.",
                    "finish": [
                        410,
                        27
                    ],
                    "rawdesc": "\nCreates an identical copy of the Source in the stopped state.\n\nStatic Sources will use significantly less memory and take much less time to be created if Source:clone is used to create them instead of love.audio.newSource, so this method should be preferred when making multiple Sources which play the same sound.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:clone)",
                    "returns": [
                        {
                            "desc": "The new identical copy of this Source.",
                            "name": "source",
                            "rawdesc": "The new identical copy of this Source.",
                            "type": "function.return",
                            "view": "love.Source"
                        }
                    ],
                    "start": [
                        410,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:clone()\n  -> source: love.Source"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    410,
                    21
                ],
                "name": "clone",
                "rawdesc": "\nCreates an identical copy of the Source in the stopped state.\n\nStatic Sources will use significantly less memory and take much less time to be created if Source:clone is used to create them instead of love.audio.newSource, so this method should be preferred when making multiple Sources which play the same sound.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:clone)",
                "start": [
                    410,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of the Source's active effect names.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getActiveEffects)\n\n@*return* `effects` — A list of the source's active effect names.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                419,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                419,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets a list of the Source's active effect names.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getActiveEffects)\n\n@*return* `effects` — A list of the source's active effect names.",
                    "finish": [
                        419,
                        38
                    ],
                    "rawdesc": "\nGets a list of the Source's active effect names.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getActiveEffects)",
                    "returns": [
                        {
                            "desc": "A list of the source's active effect names.",
                            "name": "effects",
                            "rawdesc": "A list of the source's active effect names.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        419,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getActiveEffects()\n  -> effects: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    419,
                    32
                ],
                "name": "getActiveEffects",
                "rawdesc": "\nGets a list of the Source's active effect names.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getActiveEffects)",
                "start": [
                    419,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAirAbsorption)\n\n@*return* `amount` — The amount of air absorption applied to the Source.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                430,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                430,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAirAbsorption)\n\n@*return* `amount` — The amount of air absorption applied to the Source.",
                    "finish": [
                        430,
                        38
                    ],
                    "rawdesc": "\nGets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAirAbsorption)",
                    "returns": [
                        {
                            "desc": "The amount of air absorption applied to the Source.",
                            "name": "amount",
                            "rawdesc": "The amount of air absorption applied to the Source.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        430,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getAirAbsorption()\n  -> amount: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    430,
                    32
                ],
                "name": "getAirAbsorption",
                "rawdesc": "\nGets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAirAbsorption)",
                "start": [
                    430,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the reference and maximum attenuation distances of the Source. The values, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance from the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAttenuationDistances)\n\n@*return* `ref` — The current reference attenuation distance. If the current DistanceModel is clamped, this is the minimum distance before the Source is no longer attenuated.\n\n@*return* `max` — The current maximum attenuation distance.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                440,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                440,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the reference and maximum attenuation distances of the Source. The values, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance from the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAttenuationDistances)\n\n@*return* `ref` — The current reference attenuation distance. If the current DistanceModel is clamped, this is the minimum distance before the Source is no longer attenuated.\n\n@*return* `max` — The current maximum attenuation distance.",
                    "finish": [
                        440,
                        45
                    ],
                    "rawdesc": "\nGets the reference and maximum attenuation distances of the Source. The values, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance from the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAttenuationDistances)",
                    "returns": [
                        {
                            "desc": "The current reference attenuation distance. If the current DistanceModel is clamped, this is the minimum distance before the Source is no longer attenuated.",
                            "name": "ref",
                            "rawdesc": "The current reference attenuation distance. If the current DistanceModel is clamped, this is the minimum distance before the Source is no longer attenuated.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The current maximum attenuation distance.",
                            "name": "max",
                            "rawdesc": "The current maximum attenuation distance.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        440,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getAttenuationDistances()\n  -> ref: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    440,
                    39
                ],
                "name": "getAttenuationDistances",
                "rawdesc": "\nGets the reference and maximum attenuation distances of the Source. The values, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance from the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getAttenuationDistances)",
                "start": [
                    440,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of channels in the Source. Only 1-channel (mono) Sources can use directional and positional effects.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getChannelCount)\n\n@*return* `channels` — 1 for mono, 2 for stereo.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                449,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                449,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the number of channels in the Source. Only 1-channel (mono) Sources can use directional and positional effects.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getChannelCount)\n\n@*return* `channels` — 1 for mono, 2 for stereo.",
                    "finish": [
                        449,
                        37
                    ],
                    "rawdesc": "\nGets the number of channels in the Source. Only 1-channel (mono) Sources can use directional and positional effects.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getChannelCount)",
                    "returns": [
                        {
                            "desc": "1 for mono, 2 for stereo.",
                            "name": "channels",
                            "rawdesc": "1 for mono, 2 for stereo.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        449,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getChannelCount()\n  -> channels: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    449,
                    31
                ],
                "name": "getChannelCount",
                "rawdesc": "\nGets the number of channels in the Source. Only 1-channel (mono) Sources can use directional and positional effects.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getChannelCount)",
                "start": [
                    449,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getCone)\n\n@*return* `innerAngle` — The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.\n\n@*return* `outerAngle` — The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.\n\n@*return* `outerVolume` — The Source's volume when the listener is outside both the inner and outer cone angles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                460,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                460,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getCone)\n\n@*return* `innerAngle` — The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.\n\n@*return* `outerAngle` — The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.\n\n@*return* `outerVolume` — The Source's volume when the listener is outside both the inner and outer cone angles.",
                    "finish": [
                        460,
                        29
                    ],
                    "rawdesc": "\nGets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getCone)",
                    "returns": [
                        {
                            "desc": "The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.",
                            "name": "innerAngle",
                            "rawdesc": "The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.",
                            "name": "outerAngle",
                            "rawdesc": "The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Source's volume when the listener is outside both the inner and outer cone angles.",
                            "name": "outerVolume",
                            "rawdesc": "The Source's volume when the listener is outside both the inner and outer cone angles.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        460,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getCone()\n  -> innerAngle: number\n  2. outerAngle: number\n  3. outerVolume: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    460,
                    23
                ],
                "name": "getCone",
                "rawdesc": "\nGets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getCone)",
                "start": [
                    460,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the direction of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDirection)\n\n@*return* `x` — The X part of the direction vector.\n\n@*return* `y` — The Y part of the direction vector.\n\n@*return* `z` — The Z part of the direction vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                471,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                471,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the direction of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDirection)\n\n@*return* `x` — The X part of the direction vector.\n\n@*return* `y` — The Y part of the direction vector.\n\n@*return* `z` — The Z part of the direction vector.",
                    "finish": [
                        471,
                        34
                    ],
                    "rawdesc": "\nGets the direction of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDirection)",
                    "returns": [
                        {
                            "desc": "The X part of the direction vector.",
                            "name": "x",
                            "rawdesc": "The X part of the direction vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y part of the direction vector.",
                            "name": "y",
                            "rawdesc": "The Y part of the direction vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z part of the direction vector.",
                            "name": "z",
                            "rawdesc": "The Z part of the direction vector.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        471,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getDirection()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    471,
                    28
                ],
                "name": "getDirection",
                "rawdesc": "\nGets the direction of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDirection)",
                "start": [
                    471,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the duration of the Source. For streaming Sources it may not always be sample-accurate, and may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDuration)\n\n@*param* `unit` — The time unit for the return value.\n\n@*return* `duration` — The duration of the Source, or -1 if it cannot be determined.\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                481,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                481,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The time unit for the return value.",
                            "finish": [
                                481,
                                32
                            ],
                            "name": "unit",
                            "rawdesc": "The time unit for the return value.",
                            "start": [
                                481,
                                28
                            ],
                            "type": "local",
                            "view": "(\"samples\"|\"seconds\")?"
                        }
                    ],
                    "desc": "\nGets the duration of the Source. For streaming Sources it may not always be sample-accurate, and may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDuration)\n\n@*param* `unit` — The time unit for the return value.\n\n@*return* `duration` — The duration of the Source, or -1 if it cannot be determined.\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                    "finish": [
                        481,
                        37
                    ],
                    "rawdesc": "\nGets the duration of the Source. For streaming Sources it may not always be sample-accurate, and may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDuration)\n\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                    "returns": [
                        {
                            "desc": "The duration of the Source, or -1 if it cannot be determined.",
                            "name": "duration",
                            "rawdesc": "The duration of the Source, or -1 if it cannot be determined.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        481,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getDuration(unit?: \"samples\"|\"seconds\")\n  -> duration: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    481,
                    27
                ],
                "name": "getDuration",
                "rawdesc": "\nGets the duration of the Source. For streaming Sources it may not always be sample-accurate, and may return -1 if the duration cannot be determined at all.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getDuration)\n\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "start": [
                    481,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filter settings associated to a specific effect.\n\nThis function returns nil if the effect was applied with no filter settings associated to it.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getEffect)\n\n@*param* `name` — The name of the effect.\n\n@*param* `filtersettings` — An optional empty table that will be filled with the filter settings.\n\n@*return* `filtersettings` — The settings for the filter associated to this effect, or nil if the effect is not present in this Source or has no filter associated. The table has the following fields:",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                494,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                494,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The name of the effect.",
                            "finish": [
                                494,
                                30
                            ],
                            "name": "name",
                            "rawdesc": "The name of the effect.",
                            "start": [
                                494,
                                26
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "An optional empty table that will be filled with the filter settings.",
                            "finish": [
                                494,
                                46
                            ],
                            "name": "filtersettings",
                            "rawdesc": "An optional empty table that will be filled with the filter settings.",
                            "start": [
                                494,
                                32
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nGets the filter settings associated to a specific effect.\n\nThis function returns nil if the effect was applied with no filter settings associated to it.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getEffect)\n\n@*param* `name` — The name of the effect.\n\n@*param* `filtersettings` — An optional empty table that will be filled with the filter settings.\n\n@*return* `filtersettings` — The settings for the filter associated to this effect, or nil if the effect is not present in this Source or has no filter associated. The table has the following fields:",
                    "finish": [
                        494,
                        51
                    ],
                    "rawdesc": "\nGets the filter settings associated to a specific effect.\n\nThis function returns nil if the effect was applied with no filter settings associated to it.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getEffect)",
                    "returns": [
                        {
                            "desc": "The settings for the filter associated to this effect, or nil if the effect is not present in this Source or has no filter associated. The table has the following fields:",
                            "name": "filtersettings",
                            "rawdesc": "The settings for the filter associated to this effect, or nil if the effect is not present in this Source or has no filter associated. The table has the following fields:",
                            "type": "function.return",
                            "view": "{ volume: number, highgain: number, lowgain: number }"
                        }
                    ],
                    "start": [
                        494,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getEffect(name: string, filtersettings: table)\n  -> filtersettings: { volume: number, highgain: number, lowgain: number }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    494,
                    25
                ],
                "name": "getEffect",
                "rawdesc": "\nGets the filter settings associated to a specific effect.\n\nThis function returns nil if the effect was applied with no filter settings associated to it.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getEffect)",
                "start": [
                    494,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filter settings currently applied to the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFilter)\n\n@*return* `settings` — The filter settings to use for this Source, or nil if the Source has no active filter. The table has the following fields:",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                503,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                503,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the filter settings currently applied to the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFilter)\n\n@*return* `settings` — The filter settings to use for this Source, or nil if the Source has no active filter. The table has the following fields:",
                    "finish": [
                        503,
                        31
                    ],
                    "rawdesc": "\nGets the filter settings currently applied to the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFilter)",
                    "returns": [
                        {
                            "desc": "The filter settings to use for this Source, or nil if the Source has no active filter. The table has the following fields:",
                            "name": "settings",
                            "rawdesc": "The filter settings to use for this Source, or nil if the Source has no active filter. The table has the following fields:",
                            "type": "function.return",
                            "view": "{ type: \"bandpass\"|\"highpass\"|\"lowpass\", volume: number, highgain: number, lowgain: number }"
                        }
                    ],
                    "start": [
                        503,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getFilter()\n  -> settings: { type: \"bandpass\"|\"highpass\"|\"lowpass\", volume: number, highgain: number, lowgain: number }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    503,
                    25
                ],
                "name": "getFilter",
                "rawdesc": "\nGets the filter settings currently applied to the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFilter)",
                "start": [
                    503,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of free buffer slots in a queueable Source. If the queueable Source is playing, this value will increase up to the amount the Source was created with. If the queueable Source is stopped, it will process all of its internal buffers first, in which case this function will always return the amount it was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFreeBufferCount)\n\n@*return* `buffers` — How many more SoundData objects can be queued up.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                512,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                512,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the number of free buffer slots in a queueable Source. If the queueable Source is playing, this value will increase up to the amount the Source was created with. If the queueable Source is stopped, it will process all of its internal buffers first, in which case this function will always return the amount it was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFreeBufferCount)\n\n@*return* `buffers` — How many more SoundData objects can be queued up.",
                    "finish": [
                        512,
                        40
                    ],
                    "rawdesc": "\nGets the number of free buffer slots in a queueable Source. If the queueable Source is playing, this value will increase up to the amount the Source was created with. If the queueable Source is stopped, it will process all of its internal buffers first, in which case this function will always return the amount it was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFreeBufferCount)",
                    "returns": [
                        {
                            "desc": "How many more SoundData objects can be queued up.",
                            "name": "buffers",
                            "rawdesc": "How many more SoundData objects can be queued up.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        512,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getFreeBufferCount()\n  -> buffers: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    512,
                    34
                ],
                "name": "getFreeBufferCount",
                "rawdesc": "\nGets the number of free buffer slots in a queueable Source. If the queueable Source is playing, this value will increase up to the amount the Source was created with. If the queueable Source is stopped, it will process all of its internal buffers first, in which case this function will always return the amount it was created with.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getFreeBufferCount)",
                "start": [
                    512,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPitch)\n\n@*return* `pitch` — The pitch, where 1.0 is normal.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                521,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                521,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the current pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPitch)\n\n@*return* `pitch` — The pitch, where 1.0 is normal.",
                    "finish": [
                        521,
                        30
                    ],
                    "rawdesc": "\nGets the current pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPitch)",
                    "returns": [
                        {
                            "desc": "The pitch, where 1.0 is normal.",
                            "name": "pitch",
                            "rawdesc": "The pitch, where 1.0 is normal.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        521,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getPitch()\n  -> pitch: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    521,
                    24
                ],
                "name": "getPitch",
                "rawdesc": "\nGets the current pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPitch)",
                "start": [
                    521,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPosition)\n\n@*return* `x` — The X position of the Source.\n\n@*return* `y` — The Y position of the Source.\n\n@*return* `z` — The Z position of the Source.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                532,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                532,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPosition)\n\n@*return* `x` — The X position of the Source.\n\n@*return* `y` — The Y position of the Source.\n\n@*return* `z` — The Z position of the Source.",
                    "finish": [
                        532,
                        33
                    ],
                    "rawdesc": "\nGets the position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPosition)",
                    "returns": [
                        {
                            "desc": "The X position of the Source.",
                            "name": "x",
                            "rawdesc": "The X position of the Source.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y position of the Source.",
                            "name": "y",
                            "rawdesc": "The Y position of the Source.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z position of the Source.",
                            "name": "z",
                            "rawdesc": "The Z position of the Source.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        532,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getPosition()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    532,
                    27
                ],
                "name": "getPosition",
                "rawdesc": "\nGets the position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getPosition)",
                "start": [
                    532,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the rolloff factor of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getRolloff)\n\n@*return* `rolloff` — The rolloff factor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                541,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                541,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nReturns the rolloff factor of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getRolloff)\n\n@*return* `rolloff` — The rolloff factor.",
                    "finish": [
                        541,
                        32
                    ],
                    "rawdesc": "\nReturns the rolloff factor of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getRolloff)",
                    "returns": [
                        {
                            "desc": "The rolloff factor.",
                            "name": "rolloff",
                            "rawdesc": "The rolloff factor.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        541,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getRolloff()\n  -> rolloff: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    541,
                    26
                ],
                "name": "getRolloff",
                "rawdesc": "\nReturns the rolloff factor of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getRolloff)",
                "start": [
                    541,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getType)\n\n@*return* `sourcetype` — The type of the source.\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \nsourcetype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                550,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                550,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the type of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getType)\n\n@*return* `sourcetype` — The type of the source.\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \nsourcetype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                    "finish": [
                        550,
                        29
                    ],
                    "rawdesc": "\nGets the type of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getType)\n\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \nsourcetype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                    "returns": [
                        {
                            "desc": "The type of the source.",
                            "name": "sourcetype",
                            "rawdesc": "The type of the source.",
                            "type": "function.return",
                            "view": "\"queue\"|\"static\"|\"stream\""
                        }
                    ],
                    "start": [
                        550,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getType()\n  -> sourcetype: \"queue\"|\"static\"|\"stream\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    550,
                    23
                ],
                "name": "getType",
                "rawdesc": "\nGets the type of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getType)\n\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \nsourcetype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "start": [
                    550,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the velocity of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVelocity)\n\n@*return* `x` — The X part of the velocity vector.\n\n@*return* `y` — The Y part of the velocity vector.\n\n@*return* `z` — The Z part of the velocity vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                561,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                561,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the velocity of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVelocity)\n\n@*return* `x` — The X part of the velocity vector.\n\n@*return* `y` — The Y part of the velocity vector.\n\n@*return* `z` — The Z part of the velocity vector.",
                    "finish": [
                        561,
                        33
                    ],
                    "rawdesc": "\nGets the velocity of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVelocity)",
                    "returns": [
                        {
                            "desc": "The X part of the velocity vector.",
                            "name": "x",
                            "rawdesc": "The X part of the velocity vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y part of the velocity vector.",
                            "name": "y",
                            "rawdesc": "The Y part of the velocity vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z part of the velocity vector.",
                            "name": "z",
                            "rawdesc": "The Z part of the velocity vector.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        561,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getVelocity()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    561,
                    27
                ],
                "name": "getVelocity",
                "rawdesc": "\nGets the velocity of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVelocity)",
                "start": [
                    561,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolume)\n\n@*return* `volume` — The volume of the Source, where 1.0 is normal volume.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                570,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                570,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolume)\n\n@*return* `volume` — The volume of the Source, where 1.0 is normal volume.",
                    "finish": [
                        570,
                        31
                    ],
                    "rawdesc": "\nGets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolume)",
                    "returns": [
                        {
                            "desc": "The volume of the Source, where 1.0 is normal volume.",
                            "name": "volume",
                            "rawdesc": "The volume of the Source, where 1.0 is normal volume.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        570,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getVolume()\n  -> volume: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    570,
                    25
                ],
                "name": "getVolume",
                "rawdesc": "\nGets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolume)",
                "start": [
                    570,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the volume limits of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolumeLimits)\n\n@*return* `min` — The minimum volume.\n\n@*return* `max` — The maximum volume.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                580,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                580,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nReturns the volume limits of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolumeLimits)\n\n@*return* `min` — The minimum volume.\n\n@*return* `max` — The maximum volume.",
                    "finish": [
                        580,
                        37
                    ],
                    "rawdesc": "\nReturns the volume limits of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolumeLimits)",
                    "returns": [
                        {
                            "desc": "The minimum volume.",
                            "name": "min",
                            "rawdesc": "The minimum volume.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum volume.",
                            "name": "max",
                            "rawdesc": "The maximum volume.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        580,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:getVolumeLimits()\n  -> min: number\n  2. max: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    580,
                    31
                ],
                "name": "getVolumeLimits",
                "rawdesc": "\nReturns the volume limits of the source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:getVolumeLimits)",
                "start": [
                    580,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the Source will loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isLooping)\n\n@*return* `loop` — True if the Source will loop, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                589,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                589,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nReturns whether the Source will loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isLooping)\n\n@*return* `loop` — True if the Source will loop, false otherwise.",
                    "finish": [
                        589,
                        31
                    ],
                    "rawdesc": "\nReturns whether the Source will loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isLooping)",
                    "returns": [
                        {
                            "desc": "True if the Source will loop, false otherwise.",
                            "name": "loop",
                            "rawdesc": "True if the Source will loop, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        589,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:isLooping()\n  -> loop: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    589,
                    25
                ],
                "name": "isLooping",
                "rawdesc": "\nReturns whether the Source will loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isLooping)",
                "start": [
                    589,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the Source is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isPlaying)\n\n@*return* `playing` — True if the Source is playing, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                598,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                598,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nReturns whether the Source is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isPlaying)\n\n@*return* `playing` — True if the Source is playing, false otherwise.",
                    "finish": [
                        598,
                        31
                    ],
                    "rawdesc": "\nReturns whether the Source is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isPlaying)",
                    "returns": [
                        {
                            "desc": "True if the Source is playing, false otherwise.",
                            "name": "playing",
                            "rawdesc": "True if the Source is playing, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        598,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:isPlaying()\n  -> playing: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    598,
                    25
                ],
                "name": "isPlaying",
                "rawdesc": "\nReturns whether the Source is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isPlaying)",
                "start": [
                    598,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Source's position, velocity, direction, and cone angles are relative to the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isRelative)\n\n@*return* `relative` — True if the position, velocity, direction and cone angles are relative to the listener, false if they're absolute.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                607,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                607,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nGets whether the Source's position, velocity, direction, and cone angles are relative to the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isRelative)\n\n@*return* `relative` — True if the position, velocity, direction and cone angles are relative to the listener, false if they're absolute.",
                    "finish": [
                        607,
                        32
                    ],
                    "rawdesc": "\nGets whether the Source's position, velocity, direction, and cone angles are relative to the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isRelative)",
                    "returns": [
                        {
                            "desc": "True if the position, velocity, direction and cone angles are relative to the listener, false if they're absolute.",
                            "name": "relative",
                            "rawdesc": "True if the position, velocity, direction and cone angles are relative to the listener, false if they're absolute.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        607,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:isRelative()\n  -> relative: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    607,
                    26
                ],
                "name": "isRelative",
                "rawdesc": "\nGets whether the Source's position, velocity, direction, and cone angles are relative to the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:isRelative)",
                "start": [
                    607,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:pause)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                615,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                615,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nPauses the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:pause)",
                    "finish": [
                        615,
                        27
                    ],
                    "rawdesc": "\nPauses the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:pause)",
                    "start": [
                        615,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:pause()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    615,
                    21
                ],
                "name": "pause",
                "rawdesc": "\nPauses the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:pause)",
                "start": [
                    615,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:play)\n\n@*return* `success` — Whether the Source was able to successfully start playing.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                624,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                624,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nStarts playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:play)\n\n@*return* `success` — Whether the Source was able to successfully start playing.",
                    "finish": [
                        624,
                        26
                    ],
                    "rawdesc": "\nStarts playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:play)",
                    "returns": [
                        {
                            "desc": "Whether the Source was able to successfully start playing.",
                            "name": "success",
                            "rawdesc": "Whether the Source was able to successfully start playing.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        624,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:play()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    624,
                    20
                ],
                "name": "play",
                "rawdesc": "\nStarts playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:play)",
                "start": [
                    624,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nQueues SoundData for playback in a queueable Source.\n\nThis method requires the Source to be created via love.audio.newQueueableSource.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:queue)\n\n@*param* `sounddata` — The data to queue. The SoundData's sample rate, bit depth, and channel count must match the Source's.\n\n@*return* `success` — True if the data was successfully queued for playback, false if there were no available buffers to use for queueing.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                636,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                636,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The data to queue. The SoundData's sample rate, bit depth, and channel count must match the Source's.",
                            "finish": [
                                636,
                                31
                            ],
                            "name": "sounddata",
                            "rawdesc": "The data to queue. The SoundData's sample rate, bit depth, and channel count must match the Source's.",
                            "start": [
                                636,
                                22
                            ],
                            "type": "local",
                            "view": "love.SoundData"
                        }
                    ],
                    "desc": "\nQueues SoundData for playback in a queueable Source.\n\nThis method requires the Source to be created via love.audio.newQueueableSource.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:queue)\n\n@*param* `sounddata` — The data to queue. The SoundData's sample rate, bit depth, and channel count must match the Source's.\n\n@*return* `success` — True if the data was successfully queued for playback, false if there were no available buffers to use for queueing.",
                    "finish": [
                        636,
                        36
                    ],
                    "rawdesc": "\nQueues SoundData for playback in a queueable Source.\n\nThis method requires the Source to be created via love.audio.newQueueableSource.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:queue)",
                    "returns": [
                        {
                            "desc": "True if the data was successfully queued for playback, false if there were no available buffers to use for queueing.",
                            "name": "success",
                            "rawdesc": "True if the data was successfully queued for playback, false if there were no available buffers to use for queueing.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        636,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:queue(sounddata: love.SoundData)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    636,
                    21
                ],
                "name": "queue",
                "rawdesc": "\nQueues SoundData for playback in a queueable Source.\n\nThis method requires the Source to be created via love.audio.newQueueableSource.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:queue)",
                "start": [
                    636,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:seek)\n\n@*param* `offset` — The position to seek to.\n\n@*param* `unit` — The unit of the position value.\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                646,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                646,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The position to seek to.",
                            "finish": [
                                646,
                                27
                            ],
                            "name": "offset",
                            "rawdesc": "The position to seek to.",
                            "start": [
                                646,
                                21
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The unit of the position value.",
                            "finish": [
                                646,
                                33
                            ],
                            "name": "unit",
                            "rawdesc": "The unit of the position value.",
                            "start": [
                                646,
                                29
                            ],
                            "type": "local",
                            "view": "(\"samples\"|\"seconds\")?"
                        }
                    ],
                    "desc": "\nSets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:seek)\n\n@*param* `offset` — The position to seek to.\n\n@*param* `unit` — The unit of the position value.\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                    "finish": [
                        646,
                        38
                    ],
                    "rawdesc": "\nSets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:seek)\n\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                    "start": [
                        646,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:seek(offset: number, unit?: \"samples\"|\"seconds\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    646,
                    20
                ],
                "name": "seek",
                "rawdesc": "\nSets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:seek)\n\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "start": [
                    646,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\nAir absorption can simulate sound transmission through foggy air, dry air, smoky atmosphere, etc. It can be used to simulate different atmospheric conditions within different locations in an area.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAirAbsorption)\n\n@*param* `amount` — The amount of air absorption applied to the Source. Must be between 0 and 10.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                659,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                659,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The amount of air absorption applied to the Source. Must be between 0 and 10.",
                            "finish": [
                                659,
                                39
                            ],
                            "name": "amount",
                            "rawdesc": "The amount of air absorption applied to the Source. Must be between 0 and 10.",
                            "start": [
                                659,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\nAir absorption can simulate sound transmission through foggy air, dry air, smoky atmosphere, etc. It can be used to simulate different atmospheric conditions within different locations in an area.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAirAbsorption)\n\n@*param* `amount` — The amount of air absorption applied to the Source. Must be between 0 and 10.",
                    "finish": [
                        659,
                        44
                    ],
                    "rawdesc": "\nSets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\nAir absorption can simulate sound transmission through foggy air, dry air, smoky atmosphere, etc. It can be used to simulate different atmospheric conditions within different locations in an area.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAirAbsorption)",
                    "start": [
                        659,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setAirAbsorption(amount: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    659,
                    32
                ],
                "name": "setAirAbsorption",
                "rawdesc": "\nSets the amount of air absorption applied to the Source.\n\nBy default the value is set to 0 which means that air absorption effects are disabled. A value of 1 will apply high frequency attenuation to the Source at a rate of 0.05 dB per meter.\n\nAir absorption can simulate sound transmission through foggy air, dry air, smoky atmosphere, etc. It can be used to simulate different atmospheric conditions within different locations in an area.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAirAbsorption)",
                "start": [
                    659,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the reference and maximum attenuation distances of the Source. The parameters, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance.\n\nDistance attenuation is only applicable to Sources based on mono (rather than stereo) audio.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAttenuationDistances)\n\n@*param* `ref` — The new reference attenuation distance. If the current DistanceModel is clamped, this is the minimum attenuation distance.\n\n@*param* `max` — The new maximum attenuation distance.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                671,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                671,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The new reference attenuation distance. If the current DistanceModel is clamped, this is the minimum attenuation distance.",
                            "finish": [
                                671,
                                43
                            ],
                            "name": "ref",
                            "rawdesc": "The new reference attenuation distance. If the current DistanceModel is clamped, this is the minimum attenuation distance.",
                            "start": [
                                671,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The new maximum attenuation distance.",
                            "finish": [
                                671,
                                48
                            ],
                            "name": "max",
                            "rawdesc": "The new maximum attenuation distance.",
                            "start": [
                                671,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the reference and maximum attenuation distances of the Source. The parameters, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance.\n\nDistance attenuation is only applicable to Sources based on mono (rather than stereo) audio.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAttenuationDistances)\n\n@*param* `ref` — The new reference attenuation distance. If the current DistanceModel is clamped, this is the minimum attenuation distance.\n\n@*param* `max` — The new maximum attenuation distance.",
                    "finish": [
                        671,
                        53
                    ],
                    "rawdesc": "\nSets the reference and maximum attenuation distances of the Source. The parameters, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance.\n\nDistance attenuation is only applicable to Sources based on mono (rather than stereo) audio.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAttenuationDistances)",
                    "start": [
                        671,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setAttenuationDistances(ref: number, max: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    671,
                    39
                ],
                "name": "setAttenuationDistances",
                "rawdesc": "\nSets the reference and maximum attenuation distances of the Source. The parameters, combined with the current DistanceModel, affect how the Source's volume attenuates based on distance.\n\nDistance attenuation is only applicable to Sources based on mono (rather than stereo) audio.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setAttenuationDistances)",
                "start": [
                    671,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setCone)\n\n@*param* `innerAngle` — The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.\n\n@*param* `outerAngle` — The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.\n\n@*param* `outerVolume` — The Source's volume when the listener is outside both the inner and outer cone angles.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                682,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                682,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.",
                            "finish": [
                                682,
                                34
                            ],
                            "name": "innerAngle",
                            "rawdesc": "The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.",
                            "start": [
                                682,
                                24
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.",
                            "finish": [
                                682,
                                46
                            ],
                            "name": "outerAngle",
                            "rawdesc": "The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.",
                            "start": [
                                682,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Source's volume when the listener is outside both the inner and outer cone angles.",
                            "finish": [
                                682,
                                59
                            ],
                            "name": "outerVolume",
                            "rawdesc": "The Source's volume when the listener is outside both the inner and outer cone angles.",
                            "start": [
                                682,
                                48
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setCone)\n\n@*param* `innerAngle` — The inner angle from the Source's direction, in radians. The Source will play at normal volume if the listener is inside the cone defined by this angle.\n\n@*param* `outerAngle` — The outer angle from the Source's direction, in radians. The Source will play at a volume between the normal and outer volumes, if the listener is in between the cones defined by the inner and outer angles.\n\n@*param* `outerVolume` — The Source's volume when the listener is outside both the inner and outer cone angles.",
                    "finish": [
                        682,
                        64
                    ],
                    "rawdesc": "\nSets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setCone)",
                    "start": [
                        682,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setCone(innerAngle: number, outerAngle: number, outerVolume?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    682,
                    23
                ],
                "name": "setCone",
                "rawdesc": "\nSets the Source's directional volume cones. Together with Source:setDirection, the cone angles allow for the Source's volume to vary depending on its direction.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setCone)",
                "start": [
                    682,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the direction vector of the Source. A zero vector makes the source non-directional.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setDirection)\n\n@*param* `x` — The X part of the direction vector.\n\n@*param* `y` — The Y part of the direction vector.\n\n@*param* `z` — The Z part of the direction vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                693,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                693,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The X part of the direction vector.",
                            "finish": [
                                693,
                                30
                            ],
                            "name": "x",
                            "rawdesc": "The X part of the direction vector.",
                            "start": [
                                693,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Y part of the direction vector.",
                            "finish": [
                                693,
                                33
                            ],
                            "name": "y",
                            "rawdesc": "The Y part of the direction vector.",
                            "start": [
                                693,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Z part of the direction vector.",
                            "finish": [
                                693,
                                36
                            ],
                            "name": "z",
                            "rawdesc": "The Z part of the direction vector.",
                            "start": [
                                693,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the direction vector of the Source. A zero vector makes the source non-directional.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setDirection)\n\n@*param* `x` — The X part of the direction vector.\n\n@*param* `y` — The Y part of the direction vector.\n\n@*param* `z` — The Z part of the direction vector.",
                    "finish": [
                        693,
                        41
                    ],
                    "rawdesc": "\nSets the direction vector of the Source. A zero vector makes the source non-directional.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setDirection)",
                    "start": [
                        693,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setDirection(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    693,
                    28
                ],
                "name": "setDirection",
                "rawdesc": "\nSets the direction vector of the Source. A zero vector makes the source non-directional.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setDirection)",
                "start": [
                    693,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies an audio effect to the Source.\n\nThe effect must have been previously defined using love.audio.setEffect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setEffect)\n\n\n---\n\n@*param* `name` — The name of the effect previously set up with love.audio.setEffect.\n\n@*param* `enable` — If false and the given effect name was previously enabled on this Source, disables the effect.\n\n@*return* `success` — Whether the effect was successfully applied to this Source.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                707,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                707,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The name of the effect previously set up with love.audio.setEffect.",
                            "finish": [
                                707,
                                30
                            ],
                            "name": "name",
                            "rawdesc": "The name of the effect previously set up with love.audio.setEffect.",
                            "start": [
                                707,
                                26
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "If false and the given effect name was previously enabled on this Source, disables the effect.",
                            "finish": [
                                707,
                                38
                            ],
                            "name": "enable",
                            "rawdesc": "If false and the given effect name was previously enabled on this Source, disables the effect.",
                            "start": [
                                707,
                                32
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nApplies an audio effect to the Source.\n\nThe effect must have been previously defined using love.audio.setEffect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setEffect)\n\n\n---\n\n@*param* `name` — The name of the effect previously set up with love.audio.setEffect.\n\n@*param* `enable` — If false and the given effect name was previously enabled on this Source, disables the effect.\n\n@*return* `success` — Whether the effect was successfully applied to this Source.",
                    "finish": [
                        707,
                        43
                    ],
                    "rawdesc": "\nApplies an audio effect to the Source.\n\nThe effect must have been previously defined using love.audio.setEffect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setEffect)",
                    "returns": [
                        {
                            "desc": "Whether the effect was successfully applied to this Source.",
                            "name": "success",
                            "rawdesc": "Whether the effect was successfully applied to this Source.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        707,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setEffect(name: string, enable?: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    707,
                    25
                ],
                "name": "setEffect",
                "rawdesc": "\nApplies an audio effect to the Source.\n\nThe effect must have been previously defined using love.audio.setEffect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setEffect)",
                "start": [
                    707,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a low-pass, high-pass, or band-pass filter to apply when playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setFilter)\n\n\n---\n\n@*param* `settings` — The filter settings to use for this Source, with the following fields:\n\n@*return* `success` — Whether the filter was successfully applied to the Source.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                718,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                718,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The filter settings to use for this Source, with the following fields:",
                            "finish": [
                                718,
                                34
                            ],
                            "name": "settings",
                            "rawdesc": "The filter settings to use for this Source, with the following fields:",
                            "start": [
                                718,
                                26
                            ],
                            "type": "local",
                            "view": "{ type: \"bandpass\"|\"highpass\"|\"lowpass\", volume: number, highgain: number, lowgain: number }"
                        }
                    ],
                    "desc": "\nSets a low-pass, high-pass, or band-pass filter to apply when playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setFilter)\n\n\n---\n\n@*param* `settings` — The filter settings to use for this Source, with the following fields:\n\n@*return* `success` — Whether the filter was successfully applied to the Source.",
                    "finish": [
                        718,
                        39
                    ],
                    "rawdesc": "\nSets a low-pass, high-pass, or band-pass filter to apply when playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setFilter)",
                    "returns": [
                        {
                            "desc": "Whether the filter was successfully applied to the Source.",
                            "name": "success",
                            "rawdesc": "Whether the filter was successfully applied to the Source.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        718,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setFilter(settings: { type: \"bandpass\"|\"highpass\"|\"lowpass\", volume: number, highgain: number, lowgain: number })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    718,
                    25
                ],
                "name": "setFilter",
                "rawdesc": "\nSets a low-pass, high-pass, or band-pass filter to apply when playing the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setFilter)",
                "start": [
                    718,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the Source should loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setLooping)\n\n@*param* `loop` — True if the source should loop, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                727,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                727,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "True if the source should loop, false otherwise.",
                            "finish": [
                                727,
                                31
                            ],
                            "name": "loop",
                            "rawdesc": "True if the source should loop, false otherwise.",
                            "start": [
                                727,
                                27
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the Source should loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setLooping)\n\n@*param* `loop` — True if the source should loop, false otherwise.",
                    "finish": [
                        727,
                        36
                    ],
                    "rawdesc": "\nSets whether the Source should loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setLooping)",
                    "start": [
                        727,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setLooping(loop: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    727,
                    26
                ],
                "name": "setLooping",
                "rawdesc": "\nSets whether the Source should loop.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setLooping)",
                "start": [
                    727,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPitch)\n\n@*param* `pitch` — Calculated with regard to 1 being the base pitch. Each reduction by 50 percent equals a pitch shift of -12 semitones (one octave reduction). Each doubling equals a pitch shift of 12 semitones (one octave increase). Zero is not a legal value.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                736,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                736,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "Calculated with regard to 1 being the base pitch. Each reduction by 50 percent equals a pitch shift of -12 semitones (one octave reduction). Each doubling equals a pitch shift of 12 semitones (one octave increase). Zero is not a legal value.",
                            "finish": [
                                736,
                                30
                            ],
                            "name": "pitch",
                            "rawdesc": "Calculated with regard to 1 being the base pitch. Each reduction by 50 percent equals a pitch shift of -12 semitones (one octave reduction). Each doubling equals a pitch shift of 12 semitones (one octave increase). Zero is not a legal value.",
                            "start": [
                                736,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPitch)\n\n@*param* `pitch` — Calculated with regard to 1 being the base pitch. Each reduction by 50 percent equals a pitch shift of -12 semitones (one octave reduction). Each doubling equals a pitch shift of 12 semitones (one octave increase). Zero is not a legal value.",
                    "finish": [
                        736,
                        35
                    ],
                    "rawdesc": "\nSets the pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPitch)",
                    "start": [
                        736,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setPitch(pitch: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    736,
                    24
                ],
                "name": "setPitch",
                "rawdesc": "\nSets the pitch of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPitch)",
                "start": [
                    736,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the position of the Source. Please note that this only works for mono (i.e. non-stereo) sound files!\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPosition)\n\n@*param* `x` — The X position of the Source.\n\n@*param* `y` — The Y position of the Source.\n\n@*param* `z` — The Z position of the Source.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                747,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                747,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The X position of the Source.",
                            "finish": [
                                747,
                                29
                            ],
                            "name": "x",
                            "rawdesc": "The X position of the Source.",
                            "start": [
                                747,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Y position of the Source.",
                            "finish": [
                                747,
                                32
                            ],
                            "name": "y",
                            "rawdesc": "The Y position of the Source.",
                            "start": [
                                747,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Z position of the Source.",
                            "finish": [
                                747,
                                35
                            ],
                            "name": "z",
                            "rawdesc": "The Z position of the Source.",
                            "start": [
                                747,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the position of the Source. Please note that this only works for mono (i.e. non-stereo) sound files!\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPosition)\n\n@*param* `x` — The X position of the Source.\n\n@*param* `y` — The Y position of the Source.\n\n@*param* `z` — The Z position of the Source.",
                    "finish": [
                        747,
                        40
                    ],
                    "rawdesc": "\nSets the position of the Source. Please note that this only works for mono (i.e. non-stereo) sound files!\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPosition)",
                    "start": [
                        747,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setPosition(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    747,
                    27
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the position of the Source. Please note that this only works for mono (i.e. non-stereo) sound files!\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setPosition)",
                "start": [
                    747,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the Source's position, velocity, direction, and cone angles are relative to the listener, or absolute.\n\nBy default, all sources are absolute and therefore relative to the origin of love's coordinate system 0, 0. Only absolute sources are affected by the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRelative)\n\n@*param* `enable` — True to make the position, velocity, direction and cone angles relative to the listener, false to make them absolute.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                758,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                758,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "True to make the position, velocity, direction and cone angles relative to the listener, false to make them absolute.",
                            "finish": [
                                758,
                                34
                            ],
                            "name": "enable",
                            "rawdesc": "True to make the position, velocity, direction and cone angles relative to the listener, false to make them absolute.",
                            "start": [
                                758,
                                28
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nSets whether the Source's position, velocity, direction, and cone angles are relative to the listener, or absolute.\n\nBy default, all sources are absolute and therefore relative to the origin of love's coordinate system 0, 0. Only absolute sources are affected by the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRelative)\n\n@*param* `enable` — True to make the position, velocity, direction and cone angles relative to the listener, false to make them absolute.",
                    "finish": [
                        758,
                        39
                    ],
                    "rawdesc": "\nSets whether the Source's position, velocity, direction, and cone angles are relative to the listener, or absolute.\n\nBy default, all sources are absolute and therefore relative to the origin of love's coordinate system 0, 0. Only absolute sources are affected by the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRelative)",
                    "start": [
                        758,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setRelative(enable?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    758,
                    27
                ],
                "name": "setRelative",
                "rawdesc": "\nSets whether the Source's position, velocity, direction, and cone angles are relative to the listener, or absolute.\n\nBy default, all sources are absolute and therefore relative to the origin of love's coordinate system 0, 0. Only absolute sources are affected by the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRelative)",
                "start": [
                    758,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the rolloff factor which affects the strength of the used distance attenuation.\n\nExtended information and detailed formulas can be found in the chapter '3.4. Attenuation By Distance' of OpenAL 1.1 specification.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRolloff)\n\n@*param* `rolloff` — The new rolloff factor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                769,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                769,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The new rolloff factor.",
                            "finish": [
                                769,
                                34
                            ],
                            "name": "rolloff",
                            "rawdesc": "The new rolloff factor.",
                            "start": [
                                769,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the rolloff factor which affects the strength of the used distance attenuation.\n\nExtended information and detailed formulas can be found in the chapter '3.4. Attenuation By Distance' of OpenAL 1.1 specification.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRolloff)\n\n@*param* `rolloff` — The new rolloff factor.",
                    "finish": [
                        769,
                        39
                    ],
                    "rawdesc": "\nSets the rolloff factor which affects the strength of the used distance attenuation.\n\nExtended information and detailed formulas can be found in the chapter '3.4. Attenuation By Distance' of OpenAL 1.1 specification.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRolloff)",
                    "start": [
                        769,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setRolloff(rolloff: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    769,
                    26
                ],
                "name": "setRolloff",
                "rawdesc": "\nSets the rolloff factor which affects the strength of the used distance attenuation.\n\nExtended information and detailed formulas can be found in the chapter '3.4. Attenuation By Distance' of OpenAL 1.1 specification.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setRolloff)",
                "start": [
                    769,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the velocity of the Source.\n\nThis does '''not''' change the position of the Source, but lets the application know how it has to calculate the doppler effect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVelocity)\n\n@*param* `x` — The X part of the velocity vector.\n\n@*param* `y` — The Y part of the velocity vector.\n\n@*param* `z` — The Z part of the velocity vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                782,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                782,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The X part of the velocity vector.",
                            "finish": [
                                782,
                                29
                            ],
                            "name": "x",
                            "rawdesc": "The X part of the velocity vector.",
                            "start": [
                                782,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Y part of the velocity vector.",
                            "finish": [
                                782,
                                32
                            ],
                            "name": "y",
                            "rawdesc": "The Y part of the velocity vector.",
                            "start": [
                                782,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Z part of the velocity vector.",
                            "finish": [
                                782,
                                35
                            ],
                            "name": "z",
                            "rawdesc": "The Z part of the velocity vector.",
                            "start": [
                                782,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the velocity of the Source.\n\nThis does '''not''' change the position of the Source, but lets the application know how it has to calculate the doppler effect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVelocity)\n\n@*param* `x` — The X part of the velocity vector.\n\n@*param* `y` — The Y part of the velocity vector.\n\n@*param* `z` — The Z part of the velocity vector.",
                    "finish": [
                        782,
                        40
                    ],
                    "rawdesc": "\nSets the velocity of the Source.\n\nThis does '''not''' change the position of the Source, but lets the application know how it has to calculate the doppler effect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVelocity)",
                    "start": [
                        782,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setVelocity(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    782,
                    27
                ],
                "name": "setVelocity",
                "rawdesc": "\nSets the velocity of the Source.\n\nThis does '''not''' change the position of the Source, but lets the application know how it has to calculate the doppler effect.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVelocity)",
                "start": [
                    782,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolume)\n\n@*param* `volume` — The volume for a Source, where 1.0 is normal volume. Volume cannot be raised above 1.0.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                791,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                791,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The volume for a Source, where 1.0 is normal volume. Volume cannot be raised above 1.0.",
                            "finish": [
                                791,
                                32
                            ],
                            "name": "volume",
                            "rawdesc": "The volume for a Source, where 1.0 is normal volume. Volume cannot be raised above 1.0.",
                            "start": [
                                791,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolume)\n\n@*param* `volume` — The volume for a Source, where 1.0 is normal volume. Volume cannot be raised above 1.0.",
                    "finish": [
                        791,
                        37
                    ],
                    "rawdesc": "\nSets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolume)",
                    "start": [
                        791,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setVolume(volume: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    791,
                    25
                ],
                "name": "setVolume",
                "rawdesc": "\nSets the current volume of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolume)",
                "start": [
                    791,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the volume limits of the source. The limits have to be numbers from 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolumeLimits)\n\n@*param* `min` — The minimum volume.\n\n@*param* `max` — The maximum volume.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                801,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                801,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The minimum volume.",
                            "finish": [
                                801,
                                35
                            ],
                            "name": "min",
                            "rawdesc": "The minimum volume.",
                            "start": [
                                801,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum volume.",
                            "finish": [
                                801,
                                40
                            ],
                            "name": "max",
                            "rawdesc": "The maximum volume.",
                            "start": [
                                801,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the volume limits of the source. The limits have to be numbers from 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolumeLimits)\n\n@*param* `min` — The minimum volume.\n\n@*param* `max` — The maximum volume.",
                    "finish": [
                        801,
                        45
                    ],
                    "rawdesc": "\nSets the volume limits of the source. The limits have to be numbers from 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolumeLimits)",
                    "start": [
                        801,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:setVolumeLimits(min: number, max: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    801,
                    31
                ],
                "name": "setVolumeLimits",
                "rawdesc": "\nSets the volume limits of the source. The limits have to be numbers from 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:setVolumeLimits)",
                "start": [
                    801,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStops a Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:stop)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                809,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                809,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nStops a Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:stop)",
                    "finish": [
                        809,
                        26
                    ],
                    "rawdesc": "\nStops a Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:stop)",
                    "start": [
                        809,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:stop()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    809,
                    20
                ],
                "name": "stop",
                "rawdesc": "\nStops a Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:stop)",
                "start": [
                    809,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:tell)\n\n@*param* `unit` — The type of unit for the return value.\n\n@*return* `position` — The currently playing position of the Source.\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "finish": [
                                819,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Source represents audio you can play back.\n\nYou can do interesting things with Sources, like set the volume, pitch, and its position relative to the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\nThe Source controls (play/pause/stop) act according to the following state table.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                            "start": [
                                819,
                                8
                            ],
                            "type": "self",
                            "view": "love.Source"
                        },
                        {
                            "desc": "The type of unit for the return value.",
                            "finish": [
                                819,
                                25
                            ],
                            "name": "unit",
                            "rawdesc": "The type of unit for the return value.",
                            "start": [
                                819,
                                21
                            ],
                            "type": "local",
                            "view": "(\"samples\"|\"seconds\")?"
                        }
                    ],
                    "desc": "\nGets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:tell)\n\n@*param* `unit` — The type of unit for the return value.\n\n@*return* `position` — The currently playing position of the Source.\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                    "finish": [
                        819,
                        30
                    ],
                    "rawdesc": "\nGets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:tell)\n\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                    "returns": [
                        {
                            "desc": "The currently playing position of the Source.",
                            "name": "position",
                            "rawdesc": "The currently playing position of the Source.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        819,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Source:tell(unit?: \"samples\"|\"seconds\")\n  -> position: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    819,
                    20
                ],
                "name": "tell",
                "rawdesc": "\nGets the currently playing position of the Source.\n\n\n[Open in Browser](https://love2d.org/wiki/Source:tell)\n\n\n```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nunit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "start": [
                    819,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Source",
        "type": "type",
        "view": "love.Source"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \nlove.SourceType:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "finish": [
                    963,
                    12
                ],
                "rawdesc": "```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \nlove.SourceType:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "start": [
                    951,
                    10
                ],
                "type": "doc.alias",
                "view": "\"queue\"|\"static\"|\"stream\""
            }
        ],
        "fields": [],
        "name": "love.SourceType",
        "type": "type",
        "view": "love.SourceType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            2677,
                            41
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            2677,
                            28
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2677,
                            54
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2677,
                            43
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2677,
                    54
                ],
                "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    2677,
                    10
                ],
                "type": "doc.class",
                "view": "love.SpriteBatch",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds a sprite to the batch. Sprites are drawn in the order they are added.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:add)\n\n\n---\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shear factor (x-axis).\n\n@*param* `ky` — Shear factor (y-axis).\n\n@*return* `id` — An identifier for the added sprite.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2697,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2697,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The position to draw the object (x-axis).",
                            "finish": [
                                2697,
                                26
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the object (x-axis).",
                            "start": [
                                2697,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the object (y-axis).",
                            "finish": [
                                2697,
                                29
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the object (y-axis).",
                            "start": [
                                2697,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                2697,
                                32
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                2697,
                                31
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                2697,
                                36
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                2697,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                2697,
                                40
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                2697,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                2697,
                                44
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                2697,
                                42
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                2697,
                                48
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                2697,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shear factor (x-axis).",
                            "finish": [
                                2697,
                                52
                            ],
                            "name": "kx",
                            "rawdesc": "Shear factor (x-axis).",
                            "start": [
                                2697,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shear factor (y-axis).",
                            "finish": [
                                2697,
                                56
                            ],
                            "name": "ky",
                            "rawdesc": "Shear factor (y-axis).",
                            "start": [
                                2697,
                                54
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAdds a sprite to the batch. Sprites are drawn in the order they are added.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:add)\n\n\n---\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shear factor (x-axis).\n\n@*param* `ky` — Shear factor (y-axis).\n\n@*return* `id` — An identifier for the added sprite.",
                    "finish": [
                        2697,
                        61
                    ],
                    "rawdesc": "\nAdds a sprite to the batch. Sprites are drawn in the order they are added.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:add)",
                    "returns": [
                        {
                            "desc": "An identifier for the added sprite.",
                            "name": "id",
                            "rawdesc": "An identifier for the added sprite.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2697,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:add(x: number, y: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)\n  -> id: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2697,
                    24
                ],
                "name": "add",
                "rawdesc": "\nAdds a sprite to the batch. Sprites are drawn in the order they are added.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:add)",
                "start": [
                    2697,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds a sprite to a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:addLayer)\n\n\n---\n\n@*param* `layerindex` — The index of the layer to use for this sprite.\n\n@*param* `x` — The position to draw the sprite (x-axis).\n\n@*param* `y` — The position to draw the sprite (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).\n\n@*return* `spriteindex` — The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2719,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2719,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The index of the layer to use for this sprite.",
                            "finish": [
                                2719,
                                40
                            ],
                            "name": "layerindex",
                            "rawdesc": "The index of the layer to use for this sprite.",
                            "start": [
                                2719,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the sprite (x-axis).",
                            "finish": [
                                2719,
                                43
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the sprite (x-axis).",
                            "start": [
                                2719,
                                42
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the sprite (y-axis).",
                            "finish": [
                                2719,
                                46
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the sprite (y-axis).",
                            "start": [
                                2719,
                                45
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                2719,
                                49
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                2719,
                                48
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                2719,
                                53
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                2719,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                2719,
                                57
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                2719,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                2719,
                                61
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                2719,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                2719,
                                65
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                2719,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                2719,
                                69
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                2719,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                2719,
                                73
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                2719,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAdds a sprite to a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:addLayer)\n\n\n---\n\n@*param* `layerindex` — The index of the layer to use for this sprite.\n\n@*param* `x` — The position to draw the sprite (x-axis).\n\n@*param* `y` — The position to draw the sprite (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).\n\n@*return* `spriteindex` — The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.",
                    "finish": [
                        2719,
                        78
                    ],
                    "rawdesc": "\nAdds a sprite to a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:addLayer)",
                    "returns": [
                        {
                            "desc": "The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.",
                            "name": "spriteindex",
                            "rawdesc": "The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2719,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:addLayer(layerindex: number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)\n  -> spriteindex: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2719,
                    29
                ],
                "name": "addLayer",
                "rawdesc": "\nAdds a sprite to a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:addLayer)",
                "start": [
                    2719,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAttaches a per-vertex attribute from a Mesh onto this SpriteBatch, for use when drawing. This can be combined with a Shader to augment a SpriteBatch with per-vertex or additional per-sprite information instead of just having per-sprite colors.\n\nEach sprite in a SpriteBatch has 4 vertices in the following order: top-left, bottom-left, top-right, bottom-right. The index returned by SpriteBatch:add (and used by SpriteBatch:set) can used to determine the first vertex of a specific sprite with the formula 1 + 4 * ( id - 1 ).\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:attachAttribute)\n\n@*param* `name` — The name of the vertex attribute to attach.\n\n@*param* `mesh` — The Mesh to get the vertex attribute from.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2731,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2731,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The name of the vertex attribute to attach.",
                            "finish": [
                                2731,
                                41
                            ],
                            "name": "name",
                            "rawdesc": "The name of the vertex attribute to attach.",
                            "start": [
                                2731,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The Mesh to get the vertex attribute from.",
                            "finish": [
                                2731,
                                47
                            ],
                            "name": "mesh",
                            "rawdesc": "The Mesh to get the vertex attribute from.",
                            "start": [
                                2731,
                                43
                            ],
                            "type": "local",
                            "view": "love.Mesh"
                        }
                    ],
                    "desc": "\nAttaches a per-vertex attribute from a Mesh onto this SpriteBatch, for use when drawing. This can be combined with a Shader to augment a SpriteBatch with per-vertex or additional per-sprite information instead of just having per-sprite colors.\n\nEach sprite in a SpriteBatch has 4 vertices in the following order: top-left, bottom-left, top-right, bottom-right. The index returned by SpriteBatch:add (and used by SpriteBatch:set) can used to determine the first vertex of a specific sprite with the formula 1 + 4 * ( id - 1 ).\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:attachAttribute)\n\n@*param* `name` — The name of the vertex attribute to attach.\n\n@*param* `mesh` — The Mesh to get the vertex attribute from.",
                    "finish": [
                        2731,
                        52
                    ],
                    "rawdesc": "\nAttaches a per-vertex attribute from a Mesh onto this SpriteBatch, for use when drawing. This can be combined with a Shader to augment a SpriteBatch with per-vertex or additional per-sprite information instead of just having per-sprite colors.\n\nEach sprite in a SpriteBatch has 4 vertices in the following order: top-left, bottom-left, top-right, bottom-right. The index returned by SpriteBatch:add (and used by SpriteBatch:set) can used to determine the first vertex of a specific sprite with the formula 1 + 4 * ( id - 1 ).\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:attachAttribute)",
                    "start": [
                        2731,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:attachAttribute(name: string, mesh: love.Mesh)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2731,
                    36
                ],
                "name": "attachAttribute",
                "rawdesc": "\nAttaches a per-vertex attribute from a Mesh onto this SpriteBatch, for use when drawing. This can be combined with a Shader to augment a SpriteBatch with per-vertex or additional per-sprite information instead of just having per-sprite colors.\n\nEach sprite in a SpriteBatch has 4 vertices in the following order: top-left, bottom-left, top-right, bottom-right. The index returned by SpriteBatch:add (and used by SpriteBatch:set) can used to determine the first vertex of a specific sprite with the formula 1 + 4 * ( id - 1 ).\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:attachAttribute)",
                "start": [
                    2731,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves all sprites from the buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:clear)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2739,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2739,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "desc": "\nRemoves all sprites from the buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:clear)",
                    "finish": [
                        2739,
                        32
                    ],
                    "rawdesc": "\nRemoves all sprites from the buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:clear)",
                    "start": [
                        2739,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2739,
                    26
                ],
                "name": "clear",
                "rawdesc": "\nRemoves all sprites from the buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:clear)",
                "start": [
                    2739,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nImmediately sends all new and modified sprite data in the batch to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(spritebatch, ...) will do it automatically if needed, but explicitly using SpriteBatch:flush gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(spritebatch, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:flush)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2751,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2751,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "desc": "\nImmediately sends all new and modified sprite data in the batch to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(spritebatch, ...) will do it automatically if needed, but explicitly using SpriteBatch:flush gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(spritebatch, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:flush)",
                    "finish": [
                        2751,
                        32
                    ],
                    "rawdesc": "\nImmediately sends all new and modified sprite data in the batch to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(spritebatch, ...) will do it automatically if needed, but explicitly using SpriteBatch:flush gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(spritebatch, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:flush)",
                    "start": [
                        2751,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:flush()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2751,
                    26
                ],
                "name": "flush",
                "rawdesc": "\nImmediately sends all new and modified sprite data in the batch to the graphics card.\n\nNormally it isn't necessary to call this method as love.graphics.draw(spritebatch, ...) will do it automatically if needed, but explicitly using SpriteBatch:flush gives more control over when the work happens.\n\nIf this method is used, it generally shouldn't be called more than once (at most) between love.graphics.draw(spritebatch, ...) calls.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:flush)",
                "start": [
                    2751,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum number of sprites the SpriteBatch can hold.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getBufferSize)\n\n@*return* `size` — The maximum number of sprites the batch can hold.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2760,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2760,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "desc": "\nGets the maximum number of sprites the SpriteBatch can hold.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getBufferSize)\n\n@*return* `size` — The maximum number of sprites the batch can hold.",
                    "finish": [
                        2760,
                        40
                    ],
                    "rawdesc": "\nGets the maximum number of sprites the SpriteBatch can hold.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getBufferSize)",
                    "returns": [
                        {
                            "desc": "The maximum number of sprites the batch can hold.",
                            "name": "size",
                            "rawdesc": "The maximum number of sprites the batch can hold.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2760,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:getBufferSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2760,
                    34
                ],
                "name": "getBufferSize",
                "rawdesc": "\nGets the maximum number of sprites the SpriteBatch can hold.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getBufferSize)",
                "start": [
                    2760,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the color that will be used for the next add and set operations.\n\nIf no color has been set with SpriteBatch:setColor or the current SpriteBatch color has been cleared, this method will return nil.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2776,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2776,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "desc": "\nGets the color that will be used for the next add and set operations.\n\nIf no color has been set with SpriteBatch:setColor or the current SpriteBatch color has been cleared, this method will return nil.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                    "finish": [
                        2776,
                        35
                    ],
                    "rawdesc": "\nGets the color that will be used for the next add and set operations.\n\nIf no color has been set with SpriteBatch:setColor or the current SpriteBatch color has been cleared, this method will return nil.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getColor)",
                    "returns": [
                        {
                            "desc": "The red component (0-1).",
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2776,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:getColor()\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2776,
                    29
                ],
                "name": "getColor",
                "rawdesc": "\nGets the color that will be used for the next add and set operations.\n\nIf no color has been set with SpriteBatch:setColor or the current SpriteBatch color has been cleared, this method will return nil.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getColor)",
                "start": [
                    2776,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of sprites currently in the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getCount)\n\n@*return* `count` — The number of sprites currently in the batch.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2785,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2785,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "desc": "\nGets the number of sprites currently in the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getCount)\n\n@*return* `count` — The number of sprites currently in the batch.",
                    "finish": [
                        2785,
                        35
                    ],
                    "rawdesc": "\nGets the number of sprites currently in the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getCount)",
                    "returns": [
                        {
                            "desc": "The number of sprites currently in the batch.",
                            "name": "count",
                            "rawdesc": "The number of sprites currently in the batch.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2785,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:getCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2785,
                    29
                ],
                "name": "getCount",
                "rawdesc": "\nGets the number of sprites currently in the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getCount)",
                "start": [
                    2785,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the texture (Image or Canvas) used by the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getTexture)\n\n@*return* `texture` — The Image or Canvas used by the SpriteBatch.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2794,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2794,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "desc": "\nGets the texture (Image or Canvas) used by the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getTexture)\n\n@*return* `texture` — The Image or Canvas used by the SpriteBatch.",
                    "finish": [
                        2794,
                        37
                    ],
                    "rawdesc": "\nGets the texture (Image or Canvas) used by the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getTexture)",
                    "returns": [
                        {
                            "desc": "The Image or Canvas used by the SpriteBatch.",
                            "name": "texture",
                            "rawdesc": "The Image or Canvas used by the SpriteBatch.",
                            "type": "function.return",
                            "view": "love.Texture"
                        }
                    ],
                    "start": [
                        2794,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:getTexture()\n  -> texture: love.Texture"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2794,
                    31
                ],
                "name": "getTexture",
                "rawdesc": "\nGets the texture (Image or Canvas) used by the SpriteBatch.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:getTexture)",
                "start": [
                    2794,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChanges a sprite in the batch. This requires the sprite index returned by SpriteBatch:add or SpriteBatch:addLayer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:set)\n\n\n---\n\n@*param* `spriteindex` — The index of the sprite that will be changed.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shear factor (x-axis).\n\n@*param* `ky` — Shear factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2813,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2813,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The index of the sprite that will be changed.",
                            "finish": [
                                2813,
                                36
                            ],
                            "name": "spriteindex",
                            "rawdesc": "The index of the sprite that will be changed.",
                            "start": [
                                2813,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the object (x-axis).",
                            "finish": [
                                2813,
                                39
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the object (x-axis).",
                            "start": [
                                2813,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the object (y-axis).",
                            "finish": [
                                2813,
                                42
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the object (y-axis).",
                            "start": [
                                2813,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                2813,
                                45
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                2813,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                2813,
                                49
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                2813,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                2813,
                                53
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                2813,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                2813,
                                57
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                2813,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                2813,
                                61
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                2813,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shear factor (x-axis).",
                            "finish": [
                                2813,
                                65
                            ],
                            "name": "kx",
                            "rawdesc": "Shear factor (x-axis).",
                            "start": [
                                2813,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shear factor (y-axis).",
                            "finish": [
                                2813,
                                69
                            ],
                            "name": "ky",
                            "rawdesc": "Shear factor (y-axis).",
                            "start": [
                                2813,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nChanges a sprite in the batch. This requires the sprite index returned by SpriteBatch:add or SpriteBatch:addLayer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:set)\n\n\n---\n\n@*param* `spriteindex` — The index of the sprite that will be changed.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shear factor (x-axis).\n\n@*param* `ky` — Shear factor (y-axis).",
                    "finish": [
                        2813,
                        74
                    ],
                    "rawdesc": "\nChanges a sprite in the batch. This requires the sprite index returned by SpriteBatch:add or SpriteBatch:addLayer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:set)",
                    "start": [
                        2813,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:set(spriteindex: number, x: number, y: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2813,
                    24
                ],
                "name": "set",
                "rawdesc": "\nChanges a sprite in the batch. This requires the sprite index returned by SpriteBatch:add or SpriteBatch:addLayer.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:set)",
                "start": [
                    2813,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the color that will be used for the next add and set operations. Calling the function without arguments will disable all per-sprite colors for the SpriteBatch.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn version 0.9.2 and older, the global color set with love.graphics.setColor will not work on the SpriteBatch if any of the sprites has its own color.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setColor)\n\n\n---\n\n@*param* `r` — The amount of red.\n\n@*param* `g` — The amount of green.\n\n@*param* `b` — The amount of blue.\n\n@*param* `a` — The amount of alpha.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2830,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2830,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The amount of red.",
                            "finish": [
                                2830,
                                31
                            ],
                            "name": "r",
                            "rawdesc": "The amount of red.",
                            "start": [
                                2830,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of green.",
                            "finish": [
                                2830,
                                34
                            ],
                            "name": "g",
                            "rawdesc": "The amount of green.",
                            "start": [
                                2830,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of blue.",
                            "finish": [
                                2830,
                                37
                            ],
                            "name": "b",
                            "rawdesc": "The amount of blue.",
                            "start": [
                                2830,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of alpha.",
                            "finish": [
                                2830,
                                40
                            ],
                            "name": "a",
                            "rawdesc": "The amount of alpha.",
                            "start": [
                                2830,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the color that will be used for the next add and set operations. Calling the function without arguments will disable all per-sprite colors for the SpriteBatch.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn version 0.9.2 and older, the global color set with love.graphics.setColor will not work on the SpriteBatch if any of the sprites has its own color.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setColor)\n\n\n---\n\n@*param* `r` — The amount of red.\n\n@*param* `g` — The amount of green.\n\n@*param* `b` — The amount of blue.\n\n@*param* `a` — The amount of alpha.",
                    "finish": [
                        2830,
                        45
                    ],
                    "rawdesc": "\nSets the color that will be used for the next add and set operations. Calling the function without arguments will disable all per-sprite colors for the SpriteBatch.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn version 0.9.2 and older, the global color set with love.graphics.setColor will not work on the SpriteBatch if any of the sprites has its own color.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setColor)",
                    "start": [
                        2830,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:setColor(r: number, g: number, b: number, a?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2830,
                    29
                ],
                "name": "setColor",
                "rawdesc": "\nSets the color that will be used for the next add and set operations. Calling the function without arguments will disable all per-sprite colors for the SpriteBatch.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn version 0.9.2 and older, the global color set with love.graphics.setColor will not work on the SpriteBatch if any of the sprites has its own color.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setColor)",
                "start": [
                    2830,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRestricts the drawn sprites in the SpriteBatch to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setDrawRange)\n\n\n---\n\n@*param* `start` — The index of the first sprite to draw. Index 1 corresponds to the first sprite added with SpriteBatch:add.\n\n@*param* `count` — The number of sprites to draw.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2841,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2841,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The index of the first sprite to draw. Index 1 corresponds to the first sprite added with SpriteBatch:add.",
                            "finish": [
                                2841,
                                39
                            ],
                            "name": "start",
                            "rawdesc": "The index of the first sprite to draw. Index 1 corresponds to the first sprite added with SpriteBatch:add.",
                            "start": [
                                2841,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of sprites to draw.",
                            "finish": [
                                2841,
                                46
                            ],
                            "name": "count",
                            "rawdesc": "The number of sprites to draw.",
                            "start": [
                                2841,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nRestricts the drawn sprites in the SpriteBatch to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setDrawRange)\n\n\n---\n\n@*param* `start` — The index of the first sprite to draw. Index 1 corresponds to the first sprite added with SpriteBatch:add.\n\n@*param* `count` — The number of sprites to draw.",
                    "finish": [
                        2841,
                        51
                    ],
                    "rawdesc": "\nRestricts the drawn sprites in the SpriteBatch to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setDrawRange)",
                    "start": [
                        2841,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:setDrawRange(start: number, count: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2841,
                    33
                ],
                "name": "setDrawRange",
                "rawdesc": "\nRestricts the drawn sprites in the SpriteBatch to a subset of the total.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setDrawRange)",
                "start": [
                    2841,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChanges a sprite previously added with add or addLayer, in a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setLayer)\n\n\n---\n\n@*param* `spriteindex` — The index of the existing sprite to replace.\n\n@*param* `layerindex` — The index of the layer in the Array Texture to use for this sprite.\n\n@*param* `x` — The position to draw the sprite (x-axis).\n\n@*param* `y` — The position to draw the sprite (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2863,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2863,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The index of the existing sprite to replace.",
                            "finish": [
                                2863,
                                41
                            ],
                            "name": "spriteindex",
                            "rawdesc": "The index of the existing sprite to replace.",
                            "start": [
                                2863,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the layer in the Array Texture to use for this sprite.",
                            "finish": [
                                2863,
                                53
                            ],
                            "name": "layerindex",
                            "rawdesc": "The index of the layer in the Array Texture to use for this sprite.",
                            "start": [
                                2863,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the sprite (x-axis).",
                            "finish": [
                                2863,
                                56
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the sprite (x-axis).",
                            "start": [
                                2863,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the sprite (y-axis).",
                            "finish": [
                                2863,
                                59
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the sprite (y-axis).",
                            "start": [
                                2863,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                2863,
                                62
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                2863,
                                61
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                2863,
                                66
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                2863,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                2863,
                                70
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                2863,
                                68
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                2863,
                                74
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                2863,
                                72
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                2863,
                                78
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                2863,
                                76
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                2863,
                                82
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                2863,
                                80
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                2863,
                                86
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                2863,
                                84
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nChanges a sprite previously added with add or addLayer, in a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setLayer)\n\n\n---\n\n@*param* `spriteindex` — The index of the existing sprite to replace.\n\n@*param* `layerindex` — The index of the layer in the Array Texture to use for this sprite.\n\n@*param* `x` — The position to draw the sprite (x-axis).\n\n@*param* `y` — The position to draw the sprite (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        2863,
                        91
                    ],
                    "rawdesc": "\nChanges a sprite previously added with add or addLayer, in a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setLayer)",
                    "start": [
                        2863,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:setLayer(spriteindex: number, layerindex: number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2863,
                    29
                ],
                "name": "setLayer",
                "rawdesc": "\nChanges a sprite previously added with add or addLayer, in a batch created with an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setLayer)",
                "start": [
                    2863,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the texture (Image or Canvas) used for the sprites in the batch, when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setTexture)\n\n@*param* `texture` — The new Image or Canvas to use for the sprites in the batch.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2872,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nUsing a single image, draw any number of identical copies of the image using a single call to love.graphics.draw(). This can be used, for example, to draw repeating copies of a single background image with high performance.\n\nA SpriteBatch can be even more useful when the underlying image is a texture atlas (a single image file containing many independent images); by adding Quads to the batch, different sub-images from within the atlas can be drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2872,
                                8
                            ],
                            "type": "self",
                            "view": "love.SpriteBatch"
                        },
                        {
                            "desc": "The new Image or Canvas to use for the sprites in the batch.",
                            "finish": [
                                2872,
                                39
                            ],
                            "name": "texture",
                            "rawdesc": "The new Image or Canvas to use for the sprites in the batch.",
                            "start": [
                                2872,
                                32
                            ],
                            "type": "local",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nSets the texture (Image or Canvas) used for the sprites in the batch, when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setTexture)\n\n@*param* `texture` — The new Image or Canvas to use for the sprites in the batch.",
                    "finish": [
                        2872,
                        44
                    ],
                    "rawdesc": "\nSets the texture (Image or Canvas) used for the sprites in the batch, when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setTexture)",
                    "start": [
                        2872,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.SpriteBatch:setTexture(texture: love.Texture)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2872,
                    31
                ],
                "name": "setTexture",
                "rawdesc": "\nSets the texture (Image or Canvas) used for the sprites in the batch, when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/SpriteBatch:setTexture)",
                "start": [
                    2872,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.SpriteBatch",
        "type": "type",
        "view": "love.SpriteBatch"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nlove.SpriteBatchUsage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                "finish": [
                    3846,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nlove.SpriteBatchUsage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                "start": [
                    3834,
                    10
                ],
                "type": "doc.alias",
                "view": "\"dynamic\"|\"static\"|\"stream\""
            }
        ],
        "fields": [],
        "name": "love.SpriteBatchUsage",
        "type": "type",
        "view": "love.SpriteBatchUsage"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Graphics state stack types used with love.graphics.push.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StackType)\n-- \nlove.StackType:\n    | \"transform\" -- The transformation stack (love.graphics.translate, love.graphics.rotate, etc.)\n    | \"all\" -- All love.graphics state, including transform state.\n```",
                "finish": [
                    3862,
                    10
                ],
                "rawdesc": "```lua\n-- \n-- Graphics state stack types used with love.graphics.push.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StackType)\n-- \nlove.StackType:\n    | \"transform\" -- The transformation stack (love.graphics.translate, love.graphics.rotate, etc.)\n    | \"all\" -- All love.graphics state, including transform state.\n```",
                "start": [
                    3854,
                    10
                ],
                "type": "doc.alias",
                "view": "\"all\"|\"transform\""
            }
        ],
        "fields": [],
        "name": "love.StackType",
        "type": "type",
        "view": "love.StackType"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \nlove.StencilAction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                "finish": [
                    3894,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \nlove.StencilAction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                "start": [
                    3870,
                    10
                ],
                "type": "doc.alias",
                "view": "\"decrement\"|\"decrementwrap\"|\"increment\"|\"incrementwrap\"|\"invert\"...(+1)"
            }
        ],
        "fields": [],
        "name": "love.StencilAction",
        "type": "type",
        "view": "love.StencilAction"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            2880,
                            34
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            2880,
                            21
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2880,
                            47
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2880,
                            36
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2880,
                    47
                ],
                "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    2880,
                    10
                ],
                "type": "doc.class",
                "view": "love.Text",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds additional colored text to the Text object at the specified position.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:add)\n\n\n---\n\n@*param* `textstring` — The text to add to the object.\n\n@*param* `x` — The position of the new text on the x-axis.\n\n@*param* `y` — The position of the new text on the y-axis.\n\n@*param* `angle` — The orientation of the new text in radians.\n\n@*param* `sx` — Scale factor on the x-axis.\n\n@*param* `sy` — Scale factor on the y-axis.\n\n@*param* `ox` — Origin offset on the x-axis.\n\n@*param* `oy` — Origin offset on the y-axis.\n\n@*param* `kx` — Shearing / skew factor on the x-axis.\n\n@*param* `ky` — Shearing / skew factor on the y-axis.\n\n@*return* `index` — An index number that can be used with Text:getWidth or Text:getHeight.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2901,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2901,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        },
                        {
                            "desc": "The text to add to the object.",
                            "finish": [
                                2901,
                                28
                            ],
                            "name": "textstring",
                            "rawdesc": "The text to add to the object.",
                            "start": [
                                2901,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The position of the new text on the x-axis.",
                            "finish": [
                                2901,
                                31
                            ],
                            "name": "x",
                            "rawdesc": "The position of the new text on the x-axis.",
                            "start": [
                                2901,
                                30
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position of the new text on the y-axis.",
                            "finish": [
                                2901,
                                34
                            ],
                            "name": "y",
                            "rawdesc": "The position of the new text on the y-axis.",
                            "start": [
                                2901,
                                33
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The orientation of the new text in radians.",
                            "finish": [
                                2901,
                                41
                            ],
                            "name": "angle",
                            "rawdesc": "The orientation of the new text in radians.",
                            "start": [
                                2901,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor on the x-axis.",
                            "finish": [
                                2901,
                                45
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor on the x-axis.",
                            "start": [
                                2901,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor on the y-axis.",
                            "finish": [
                                2901,
                                49
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor on the y-axis.",
                            "start": [
                                2901,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset on the x-axis.",
                            "finish": [
                                2901,
                                53
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset on the x-axis.",
                            "start": [
                                2901,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset on the y-axis.",
                            "finish": [
                                2901,
                                57
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset on the y-axis.",
                            "start": [
                                2901,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing / skew factor on the x-axis.",
                            "finish": [
                                2901,
                                61
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing / skew factor on the x-axis.",
                            "start": [
                                2901,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing / skew factor on the y-axis.",
                            "finish": [
                                2901,
                                65
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing / skew factor on the y-axis.",
                            "start": [
                                2901,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAdds additional colored text to the Text object at the specified position.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:add)\n\n\n---\n\n@*param* `textstring` — The text to add to the object.\n\n@*param* `x` — The position of the new text on the x-axis.\n\n@*param* `y` — The position of the new text on the y-axis.\n\n@*param* `angle` — The orientation of the new text in radians.\n\n@*param* `sx` — Scale factor on the x-axis.\n\n@*param* `sy` — Scale factor on the y-axis.\n\n@*param* `ox` — Origin offset on the x-axis.\n\n@*param* `oy` — Origin offset on the y-axis.\n\n@*param* `kx` — Shearing / skew factor on the x-axis.\n\n@*param* `ky` — Shearing / skew factor on the y-axis.\n\n@*return* `index` — An index number that can be used with Text:getWidth or Text:getHeight.",
                    "finish": [
                        2901,
                        70
                    ],
                    "rawdesc": "\nAdds additional colored text to the Text object at the specified position.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:add)",
                    "returns": [
                        {
                            "desc": "An index number that can be used with Text:getWidth or Text:getHeight.",
                            "name": "index",
                            "rawdesc": "An index number that can be used with Text:getWidth or Text:getHeight.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2901,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:add(textstring: string, x?: number, y?: number, angle?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)\n  -> index: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2901,
                    17
                ],
                "name": "add",
                "rawdesc": "\nAdds additional colored text to the Text object at the specified position.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:add)",
                "start": [
                    2901,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds additional formatted / colored text to the Text object at the specified position.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:addf)\n\n\n---\n\n@*param* `textstring` — The text to add to the object.\n\n@*param* `wraplimit` — The maximum width in pixels of the text before it gets automatically wrapped to a new line.\n\n@*param* `align` — The alignment of the text.\n\n@*param* `x` — The position of the new text (x-axis).\n\n@*param* `y` — The position of the new text (y-axis).\n\n@*param* `angle` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing / skew factor (x-axis).\n\n@*param* `ky` — Shearing / skew factor (y-axis).\n\n@*return* `index` — An index number that can be used with Text:getWidth or Text:getHeight.\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        },
                        {
                            "desc": "The text to add to the object.",
                            "finish": [
                                2925,
                                29
                            ],
                            "name": "textstring",
                            "rawdesc": "The text to add to the object.",
                            "start": [
                                2925,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The maximum width in pixels of the text before it gets automatically wrapped to a new line.",
                            "finish": [
                                2925,
                                40
                            ],
                            "name": "wraplimit",
                            "rawdesc": "The maximum width in pixels of the text before it gets automatically wrapped to a new line.",
                            "start": [
                                2925,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alignment of the text.",
                            "finish": [
                                2925,
                                47
                            ],
                            "name": "align",
                            "rawdesc": "The alignment of the text.",
                            "start": [
                                2925,
                                42
                            ],
                            "type": "local",
                            "view": "\"center\"|\"justify\"|\"left\"|\"right\""
                        },
                        {
                            "desc": "The position of the new text (x-axis).",
                            "finish": [
                                2925,
                                50
                            ],
                            "name": "x",
                            "rawdesc": "The position of the new text (x-axis).",
                            "start": [
                                2925,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the new text (y-axis).",
                            "finish": [
                                2925,
                                53
                            ],
                            "name": "y",
                            "rawdesc": "The position of the new text (y-axis).",
                            "start": [
                                2925,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                2925,
                                60
                            ],
                            "name": "angle",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                2925,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                2925,
                                64
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                2925,
                                62
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                2925,
                                68
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                2925,
                                66
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                2925,
                                72
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                2925,
                                70
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                2925,
                                76
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                2925,
                                74
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing / skew factor (x-axis).",
                            "finish": [
                                2925,
                                80
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing / skew factor (x-axis).",
                            "start": [
                                2925,
                                78
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing / skew factor (y-axis).",
                            "finish": [
                                2925,
                                84
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing / skew factor (y-axis).",
                            "start": [
                                2925,
                                82
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAdds additional formatted / colored text to the Text object at the specified position.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:addf)\n\n\n---\n\n@*param* `textstring` — The text to add to the object.\n\n@*param* `wraplimit` — The maximum width in pixels of the text before it gets automatically wrapped to a new line.\n\n@*param* `align` — The alignment of the text.\n\n@*param* `x` — The position of the new text (x-axis).\n\n@*param* `y` — The position of the new text (y-axis).\n\n@*param* `angle` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing / skew factor (x-axis).\n\n@*param* `ky` — Shearing / skew factor (y-axis).\n\n@*return* `index` — An index number that can be used with Text:getWidth or Text:getHeight.\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "finish": [
                        2925,
                        89
                    ],
                    "rawdesc": "\nAdds additional formatted / colored text to the Text object at the specified position.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:addf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "returns": [
                        {
                            "desc": "An index number that can be used with Text:getWidth or Text:getHeight.",
                            "name": "index",
                            "rawdesc": "An index number that can be used with Text:getWidth or Text:getHeight.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:addf(textstring: string, wraplimit: number, align: \"center\"|\"justify\"|\"left\"|\"right\", x: number, y: number, angle?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)\n  -> index: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2925,
                    18
                ],
                "name": "addf",
                "rawdesc": "\nAdds additional formatted / colored text to the Text object at the specified position.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:addf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "start": [
                    2925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClears the contents of the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:clear)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2933,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2933,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        }
                    ],
                    "desc": "\nClears the contents of the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:clear)",
                    "finish": [
                        2933,
                        25
                    ],
                    "rawdesc": "\nClears the contents of the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:clear)",
                    "start": [
                        2933,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2933,
                    19
                ],
                "name": "clear",
                "rawdesc": "\nClears the contents of the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:clear)",
                "start": [
                    2933,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getDimensions)\n\n\n---\n\n@*return* `width` — The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.\n\n@*return* `height` — The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2944,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2944,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        }
                    ],
                    "desc": "\nGets the width and height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getDimensions)\n\n\n---\n\n@*return* `width` — The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.\n\n@*return* `height` — The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                    "finish": [
                        2944,
                        33
                    ],
                    "rawdesc": "\nGets the width and height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.",
                            "name": "width",
                            "rawdesc": "The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                            "name": "height",
                            "rawdesc": "The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2944,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2944,
                    27
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getDimensions)",
                "start": [
                    2944,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the Font used with the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getFont)\n\n@*return* `font` — The font used with this Text object.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2953,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2953,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        }
                    ],
                    "desc": "\nGets the Font used with the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getFont)\n\n@*return* `font` — The font used with this Text object.",
                    "finish": [
                        2953,
                        27
                    ],
                    "rawdesc": "\nGets the Font used with the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getFont)",
                    "returns": [
                        {
                            "desc": "The font used with this Text object.",
                            "name": "font",
                            "rawdesc": "The font used with this Text object.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        2953,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:getFont()\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2953,
                    21
                ],
                "name": "getFont",
                "rawdesc": "\nGets the Font used with the Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getFont)",
                "start": [
                    2953,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getHeight)\n\n\n---\n\n@*return* `height` — The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2963,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2963,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        }
                    ],
                    "desc": "\nGets the height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getHeight)\n\n\n---\n\n@*return* `height` — The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                    "finish": [
                        2963,
                        29
                    ],
                    "rawdesc": "\nGets the height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                            "name": "height",
                            "rawdesc": "The height of the text. If multiple sub-strings have been added with Text:add, the height of the last sub-string is returned.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2963,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2963,
                    23
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getHeight)",
                "start": [
                    2963,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getWidth)\n\n\n---\n\n@*return* `width` — The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2973,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2973,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        }
                    ],
                    "desc": "\nGets the width of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getWidth)\n\n\n---\n\n@*return* `width` — The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.",
                    "finish": [
                        2973,
                        28
                    ],
                    "rawdesc": "\nGets the width of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.",
                            "name": "width",
                            "rawdesc": "The width of the text. If multiple sub-strings have been added with Text:add, the width of the last sub-string is returned.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2973,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2973,
                    22
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the text in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:getWidth)",
                "start": [
                    2973,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplaces the contents of the Text object with a new unformatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:set)\n\n\n---\n\n@*param* `textstring` — The new string of text to use.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2983,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2983,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        },
                        {
                            "desc": "The new string of text to use.",
                            "finish": [
                                2983,
                                28
                            ],
                            "name": "textstring",
                            "rawdesc": "The new string of text to use.",
                            "start": [
                                2983,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nReplaces the contents of the Text object with a new unformatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:set)\n\n\n---\n\n@*param* `textstring` — The new string of text to use.",
                    "finish": [
                        2983,
                        33
                    ],
                    "rawdesc": "\nReplaces the contents of the Text object with a new unformatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:set)",
                    "start": [
                        2983,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:set(textstring: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2983,
                    17
                ],
                "name": "set",
                "rawdesc": "\nReplaces the contents of the Text object with a new unformatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:set)",
                "start": [
                    2983,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplaces the Font used with the text.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setFont)\n\n@*param* `font` — The new font to use with this Text object.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                2992,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                2992,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        },
                        {
                            "desc": "The new font to use with this Text object.",
                            "finish": [
                                2992,
                                26
                            ],
                            "name": "font",
                            "rawdesc": "The new font to use with this Text object.",
                            "start": [
                                2992,
                                22
                            ],
                            "type": "local",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nReplaces the Font used with the text.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setFont)\n\n@*param* `font` — The new font to use with this Text object.",
                    "finish": [
                        2992,
                        31
                    ],
                    "rawdesc": "\nReplaces the Font used with the text.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setFont)",
                    "start": [
                        2992,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:setFont(font: love.Font)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    2992,
                    21
                ],
                "name": "setFont",
                "rawdesc": "\nReplaces the Font used with the text.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setFont)",
                "start": [
                    2992,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplaces the contents of the Text object with a new formatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setf)\n\n\n---\n\n@*param* `textstring` — The new string of text to use.\n\n@*param* `wraplimit` — The maximum width in pixels of the text before it gets automatically wrapped to a new line.\n\n@*param* `align` — The alignment of the text.\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nDrawable text.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Text"
                        },
                        {
                            "desc": "The new string of text to use.",
                            "finish": [
                                3004,
                                29
                            ],
                            "name": "textstring",
                            "rawdesc": "The new string of text to use.",
                            "start": [
                                3004,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The maximum width in pixels of the text before it gets automatically wrapped to a new line.",
                            "finish": [
                                3004,
                                40
                            ],
                            "name": "wraplimit",
                            "rawdesc": "The maximum width in pixels of the text before it gets automatically wrapped to a new line.",
                            "start": [
                                3004,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alignment of the text.",
                            "finish": [
                                3004,
                                47
                            ],
                            "name": "align",
                            "rawdesc": "The alignment of the text.",
                            "start": [
                                3004,
                                42
                            ],
                            "type": "local",
                            "view": "\"center\"|\"justify\"|\"left\"|\"right\""
                        }
                    ],
                    "desc": "\nReplaces the contents of the Text object with a new formatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setf)\n\n\n---\n\n@*param* `textstring` — The new string of text to use.\n\n@*param* `wraplimit` — The maximum width in pixels of the text before it gets automatically wrapped to a new line.\n\n@*param* `align` — The alignment of the text.\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "finish": [
                        3004,
                        52
                    ],
                    "rawdesc": "\nReplaces the contents of the Text object with a new formatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "start": [
                        3004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Text:setf(textstring: string, wraplimit: number, align: \"center\"|\"justify\"|\"left\"|\"right\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3004,
                    18
                ],
                "name": "setf",
                "rawdesc": "\nReplaces the contents of the Text object with a new formatted string.\n\n\n[Open in Browser](https://love2d.org/wiki/Text:setf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "start": [
                    3004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Text",
        "type": "type",
        "view": "love.Text"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            3012,
                            37
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            3012,
                            24
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            3012,
                            50
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            3012,
                            39
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3012,
                    50
                ],
                "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    3012,
                    10
                ],
                "type": "doc.class",
                "view": "love.Texture",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3026,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3026,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)\n\n@*return* `dpiscale` — The DPI scale factor of the Texture.",
                    "finish": [
                        3026,
                        34
                    ],
                    "rawdesc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)",
                    "returns": [
                        {
                            "desc": "The DPI scale factor of the Texture.",
                            "name": "dpiscale",
                            "rawdesc": "The DPI scale factor of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3026,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDPIScale()\n  -> dpiscale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3026,
                    28
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor of the Texture.\n\nThe DPI scale factor represents relative pixel density. A DPI scale factor of 2 means the texture has twice the pixel density in each dimension (4 times as many pixels in the same area) compared to a texture with a DPI scale factor of 1.\n\nFor example, a texture with pixel dimensions of 100x100 with a DPI scale factor of 2 will be drawn as if it was 50x50. This is useful with high-dpi /  retina displays to easily allow swapping out higher or lower pixel density Images and Canvases without needing any extra manual scaling logic.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDPIScale)",
                "start": [
                    3026,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)\n\n@*return* `depth` — The depth of the volume Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3035,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3035,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)\n\n@*return* `depth` — The depth of the volume Texture.",
                    "finish": [
                        3035,
                        31
                    ],
                    "rawdesc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)",
                    "returns": [
                        {
                            "desc": "The depth of the volume Texture.",
                            "name": "depth",
                            "rawdesc": "The depth of the volume Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3035,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDepth()\n  -> depth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3035,
                    25
                ],
                "name": "getDepth",
                "rawdesc": "\nGets the depth of a Volume Texture. Returns 1 for 2D, Cubemap, and Array textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepth)",
                "start": [
                    3035,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n@*return* `compare` — The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3046,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3046,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n@*return* `compare` — The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        3046,
                        41
                    ],
                    "rawdesc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.",
                            "name": "compare",
                            "rawdesc": "The comparison mode used when sampling from this texture in a shader, or nil if setDepthSampleMode has not been called on this Texture.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        }
                    ],
                    "start": [
                        3046,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDepthSampleMode()\n  -> compare: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3046,
                    35
                ],
                "name": "getDepthSampleMode",
                "rawdesc": "\nGets the comparison mode used when sampling from a depth texture in a shader.\n\nDepth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3046,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)\n\n@*return* `width` — The width of the Texture.\n\n@*return* `height` — The height of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3056,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3056,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)\n\n@*return* `width` — The width of the Texture.\n\n@*return* `height` — The height of the Texture.",
                    "finish": [
                        3056,
                        36
                    ],
                    "rawdesc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Texture.",
                            "name": "width",
                            "rawdesc": "The width of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Texture.",
                            "name": "height",
                            "rawdesc": "The height of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3056,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3056,
                    30
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getDimensions)",
                "start": [
                    3056,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n@*return* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `mag` — Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3067,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3067,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n@*return* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `mag` — Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3067,
                        32
                    ],
                    "rawdesc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "name": "min",
                            "rawdesc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "name": "mag",
                            "rawdesc": "Filter mode to use when magnifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3067,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3067,
                    26
                ],
                "name": "getFilter",
                "rawdesc": "\nGets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3067,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n@*return* `format` — The pixel format the Texture was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3076,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3076,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n@*return* `format` — The pixel format the Texture was created with.\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "finish": [
                        3076,
                        32
                    ],
                    "rawdesc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                    "returns": [
                        {
                            "desc": "The pixel format the Texture was created with.",
                            "name": "format",
                            "rawdesc": "The pixel format the Texture was created with.",
                            "type": "function.return",
                            "view": "\"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                        }
                    ],
                    "start": [
                        3076,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getFormat()\n  -> format: \"ASTC10x10\"|\"ASTC10x5\"|\"ASTC10x6\"|\"ASTC10x8\"|\"ASTC12x10\"...(+59)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3076,
                    26
                ],
                "name": "getFormat",
                "rawdesc": "\nGets the pixel format of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getFormat)\n\n\n```lua\n-- \n-- Pixel formats for Textures, ImageData, and CompressedImageData.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PixelFormat)\n-- \nformat:\n    | \"unknown\" -- Indicates unknown pixel format, used internally.\n    | \"normal\" -- Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.\n    | \"hdr\" -- A format suitable for high dynamic range content - an alias for the rgba16f format, normally.\n    | \"r8\" -- Single-channel (red component) format (8 bpp).\n    | \"rg8\" -- Two channels (red and green components) with 8 bits per channel (16 bpp).\n    | \"rgba8\" -- 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).\n    | \"srgba8\" -- gamma-correct version of rgba8.\n    | \"r16\" -- Single-channel (red component) format (16 bpp).\n    | \"rg16\" -- Two channels (red and green components) with 16 bits per channel (32 bpp).\n    | \"rgba16\" -- 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).\n    | \"r16f\" -- Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].\n    | \"rg16f\" -- Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].\n    | \"rgba16f\" -- Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].\n    | \"r32f\" -- Floating point single-channel format (32 bpp).\n    | \"rg32f\" -- Floating point two-channel format with 32 bits per channel (64 bpp).\n    | \"rgba32f\" -- Floating point RGBA with 32 bits per channel (128 bpp).\n    | \"la8\" -- Same as rg8, but accessed as (L, L, L, A)\n    | \"rgba4\" -- 4 bits per channel (16 bpp) RGBA.\n    | \"rgb5a1\" -- RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).\n    | \"rgb565\" -- RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.\n    | \"rgb10a2\" -- RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).\n    | \"rg11b10f\" -- Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].\n    | \"stencil8\" -- No depth buffer and 8-bit stencil buffer.\n    | \"depth16\" -- 16-bit depth buffer and no stencil buffer.\n    | \"depth24\" -- 24-bit depth buffer and no stencil buffer.\n    | \"depth32f\" -- 32-bit float depth buffer and no stencil buffer.\n    | \"depth24stencil8\" -- 24-bit depth buffer and 8-bit stencil buffer.\n    | \"depth32fstencil8\" -- 32-bit float depth buffer and 8-bit stencil buffer.\n    | \"DXT1\" -- The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.\n    | \"DXT3\" -- The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.\n    | \"DXT5\" -- The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.\n    | \"BC4\" -- The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.\n    | \"BC4s\" -- The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"BC5\" -- The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.\n    | \"BC5s\" -- The signed variant of the BC5 format.\n    | \"BC6h\" -- The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.\n    | \"BC6hs\" -- The signed variant of the BC6H format. Stores RGB data in the range of +65504.\n    | \"BC7\" -- The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.\n    | \"ETC1\" -- The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.\n    | \"ETC2rgb\" -- The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.\n    | \"ETC2rgba\" -- The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.\n    | \"ETC2rgba1\" -- The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.\n    | \"EACr\" -- The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.\n    | \"EACrs\" -- The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.\n    | \"EACrg\" -- The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.\n    | \"EACrgs\" -- The signed two-channel variant of the EAC format.\n    | \"PVR1rgb2\" -- The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.\n    | \"PVR1rgb4\" -- The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.\n    | \"PVR1rgba2\" -- The 2 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"PVR1rgba4\" -- The 4 bit per pixel RGBA variant of the PVRTC1 format.\n    | \"ASTC4x4\" -- The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.\n    | \"ASTC5x4\" -- The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.\n    | \"ASTC5x5\" -- The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.\n    | \"ASTC6x5\" -- The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.\n    | \"ASTC6x6\" -- The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.\n    | \"ASTC8x5\" -- The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.\n    | \"ASTC8x6\" -- The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.\n    | \"ASTC8x8\" -- The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.\n    | \"ASTC10x5\" -- The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.\n    | \"ASTC10x6\" -- The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.\n    | \"ASTC10x8\" -- The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.\n    | \"ASTC10x10\" -- The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.\n    | \"ASTC12x10\" -- The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.\n    | \"ASTC12x12\" -- The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.\n```",
                "start": [
                    3076,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)\n\n@*return* `height` — The height of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3085,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3085,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)\n\n@*return* `height` — The height of the Texture.",
                    "finish": [
                        3085,
                        32
                    ],
                    "rawdesc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Texture.",
                            "name": "height",
                            "rawdesc": "The height of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3085,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3085,
                    26
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getHeight)",
                "start": [
                    3085,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)\n\n@*return* `layers` — The number of layers in the Array Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3094,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3094,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)\n\n@*return* `layers` — The number of layers in the Array Texture.",
                    "finish": [
                        3094,
                        36
                    ],
                    "rawdesc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)",
                    "returns": [
                        {
                            "desc": "The number of layers in the Array Texture.",
                            "name": "layers",
                            "rawdesc": "The number of layers in the Array Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3094,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getLayerCount()\n  -> layers: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3094,
                    30
                ],
                "name": "getLayerCount",
                "rawdesc": "\nGets the number of layers / slices in an Array Texture. Returns 1 for 2D, Cubemap, and Volume textures.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getLayerCount)",
                "start": [
                    3094,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmaps in the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3103,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3103,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)\n\n@*return* `mipmaps` — The number of mipmaps in the Texture.",
                    "finish": [
                        3103,
                        37
                    ],
                    "rawdesc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)",
                    "returns": [
                        {
                            "desc": "The number of mipmaps in the Texture.",
                            "name": "mipmaps",
                            "rawdesc": "The number of mipmaps in the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3103,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getMipmapCount()\n  -> mipmaps: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3103,
                    31
                ],
                "name": "getMipmapCount",
                "rawdesc": "\nGets the number of mipmaps contained in the Texture. If the texture was not created with mipmaps, it will return 1.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapCount)",
                "start": [
                    3103,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n@*return* `mode` — The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.\n\n@*return* `sharpness` — Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3113,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3113,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n@*return* `mode` — The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.\n\n@*return* `sharpness` — Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3113,
                        38
                    ],
                    "rawdesc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.",
                            "name": "mode",
                            "rawdesc": "The filter mode used in between mipmap levels. nil if mipmap filtering is not enabled.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.",
                            "name": "sharpness",
                            "rawdesc": "Value used to determine whether the image should use more or less detailed mipmap levels than normal when drawing.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3113,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getMipmapFilter()\n  -> mode: \"linear\"|\"nearest\"\n  2. sharpness: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3113,
                    32
                ],
                "name": "getMipmapFilter",
                "rawdesc": "\nGets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getMipmapFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3113,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3125,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3125,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                    "finish": [
                        3125,
                        41
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Texture, in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Texture, in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3125,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelDimensions()\n  -> pixelwidth: number\n  2. pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3125,
                    35
                ],
                "name": "getPixelDimensions",
                "rawdesc": "\nGets the width and height in pixels of the Texture.\n\nTexture:getDimensions gets the dimensions of the texture in units scaled by the texture's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelDimensions only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelDimensions)",
                "start": [
                    3125,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3136,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3136,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)\n\n@*return* `pixelheight` — The height of the Texture, in pixels.",
                    "finish": [
                        3136,
                        37
                    ],
                    "rawdesc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Texture, in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3136,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelHeight()\n  -> pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3136,
                    31
                ],
                "name": "getPixelHeight",
                "rawdesc": "\nGets the height in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getHeight for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelHeight only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelHeight)",
                "start": [
                    3136,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)\n\n@*return* `pixelwidth` — The width of the Texture, in pixels.",
                    "finish": [
                        3147,
                        36
                    ],
                    "rawdesc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Texture, in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the Texture, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getPixelWidth()\n  -> pixelwidth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3147,
                    30
                ],
                "name": "getPixelWidth",
                "rawdesc": "\nGets the width in pixels of the Texture.\n\nDPI scale factor, rather than pixels. Use getWidth for calculations related to drawing the texture (calculating an origin offset, for example), and getPixelWidth only when dealing specifically with pixels, for example when using Canvas:newImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getPixelWidth)",
                "start": [
                    3147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n@*return* `texturetype` — The type of the Texture.\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3156,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3156,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n@*return* `texturetype` — The type of the Texture.\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                    "finish": [
                        3156,
                        37
                    ],
                    "rawdesc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                    "returns": [
                        {
                            "desc": "The type of the Texture.",
                            "name": "texturetype",
                            "rawdesc": "The type of the Texture.",
                            "type": "function.return",
                            "view": "\"2d\"|\"array\"|\"cube\"|\"volume\""
                        }
                    ],
                    "start": [
                        3156,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getTextureType()\n  -> texturetype: \"2d\"|\"array\"|\"cube\"|\"volume\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3156,
                    31
                ],
                "name": "getTextureType",
                "rawdesc": "\nGets the type of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getTextureType)\n\n\n```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \ntexturetype:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "start": [
                    3156,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)\n\n@*return* `width` — The width of the Texture.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3165,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3165,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)\n\n@*return* `width` — The width of the Texture.",
                    "finish": [
                        3165,
                        31
                    ],
                    "rawdesc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Texture.",
                            "name": "width",
                            "rawdesc": "The width of the Texture.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3165,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3165,
                    25
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWidth)",
                "start": [
                    3165,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n@*return* `horiz` — Horizontal wrapping mode of the texture.\n\n@*return* `vert` — Vertical wrapping mode of the texture.\n\n@*return* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3178,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3178,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n@*return* `horiz` — Horizontal wrapping mode of the texture.\n\n@*return* `vert` — Vertical wrapping mode of the texture.\n\n@*return* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "finish": [
                        3178,
                        30
                    ],
                    "rawdesc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "returns": [
                        {
                            "desc": "Horizontal wrapping mode of the texture.",
                            "name": "horiz",
                            "rawdesc": "Horizontal wrapping mode of the texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Vertical wrapping mode of the texture.",
                            "name": "vert",
                            "rawdesc": "Vertical wrapping mode of the texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Wrapping mode for the z-axis of a Volume texture.",
                            "name": "depth",
                            "rawdesc": "Wrapping mode for the z-axis of a Volume texture.",
                            "type": "function.return",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        }
                    ],
                    "start": [
                        3178,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:getWrap()\n  -> horiz: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\"\n  2. vert: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\"\n  3. depth: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3178,
                    24
                ],
                "name": "getWrap",
                "rawdesc": "\nGets the wrapping properties of a Texture.\n\nThis function returns the currently set horizontal and vertical wrapping modes for the texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:getWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3178,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)\n\n@*return* `readable` — Whether the Texture is readable.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3191,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3191,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        }
                    ],
                    "desc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)\n\n@*return* `readable` — Whether the Texture is readable.",
                    "finish": [
                        3191,
                        33
                    ],
                    "rawdesc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)",
                    "returns": [
                        {
                            "desc": "Whether the Texture is readable.",
                            "name": "readable",
                            "rawdesc": "Whether the Texture is readable.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3191,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:isReadable()\n  -> readable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3191,
                    27
                ],
                "name": "isReadable",
                "rawdesc": "\nGets whether the Texture can be drawn and sent to a Shader.\n\nCanvases created with stencil and/or depth PixelFormats are not readable by default, unless readable=true is specified in the settings table passed into love.graphics.newCanvas.\n\nNon-readable Canvases can still be rendered to.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:isReadable)",
                "start": [
                    3191,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n@*param* `compare` — The comparison mode used when sampling from this texture in a shader.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3204,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3204,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The comparison mode used when sampling from this texture in a shader.",
                            "finish": [
                                3204,
                                43
                            ],
                            "name": "compare",
                            "rawdesc": "The comparison mode used when sampling from this texture in a shader.",
                            "start": [
                                3204,
                                36
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        }
                    ],
                    "desc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n@*param* `compare` — The comparison mode used when sampling from this texture in a shader.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        3204,
                        48
                    ],
                    "rawdesc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        3204,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setDepthSampleMode(compare: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3204,
                    35
                ],
                "name": "setDepthSampleMode",
                "rawdesc": "\nSets the comparison mode used when sampling from a depth texture in a shader. Depth texture comparison modes are advanced low-level functionality typically used with shadow mapping in 3D.\n\nWhen using a depth texture with a comparison mode set in a shader, it must be declared as a sampler2DShadow and used in a GLSL 3 Shader. The result of accessing the texture in the shader will return a float between 0 and 1, proportional to the number of samples (up to 4 samples will be used if bilinear filtering is enabled) that passed the test set by the comparison operation.\n\nDepth texture comparison can only be used with readable depth-formatted Canvases.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setDepthSampleMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncompare:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    3204,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n@*param* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*param* `mag` — Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering to use.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3215,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3215,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "finish": [
                                3215,
                                30
                            ],
                            "name": "min",
                            "rawdesc": "Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).",
                            "start": [
                                3215,
                                27
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).",
                            "finish": [
                                3215,
                                35
                            ],
                            "name": "mag",
                            "rawdesc": "Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).",
                            "start": [
                                3215,
                                32
                            ],
                            "type": "local",
                            "view": "(\"linear\"|\"nearest\")?"
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering to use.",
                            "finish": [
                                3215,
                                47
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering to use.",
                            "start": [
                                3215,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n@*param* `min` — Filter mode to use when minifying the texture (rendering it at a smaller size on-screen than its size in pixels).\n\n@*param* `mag` — Filter mode to use when magnifying the texture (rendering it at a larger size on-screen than its size in pixels).\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering to use.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3215,
                        52
                    ],
                    "rawdesc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3215,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setFilter(min: \"linear\"|\"nearest\", mag?: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3215,
                    26
                ],
                "name": "setFilter",
                "rawdesc": "\nSets the filter mode of the Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3215,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n@*param* `filtermode` — The filter mode to use in between mipmap levels. 'nearest' will often give better performance.\n\n@*param* `sharpness` — A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3232,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3232,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The filter mode to use in between mipmap levels. 'nearest' will often give better performance.",
                            "finish": [
                                3232,
                                43
                            ],
                            "name": "filtermode",
                            "rawdesc": "The filter mode to use in between mipmap levels. 'nearest' will often give better performance.",
                            "start": [
                                3232,
                                33
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.",
                            "finish": [
                                3232,
                                54
                            ],
                            "name": "sharpness",
                            "rawdesc": "A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.",
                            "start": [
                                3232,
                                45
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n@*param* `filtermode` — The filter mode to use in between mipmap levels. 'nearest' will often give better performance.\n\n@*param* `sharpness` — A positive sharpness value makes the texture use a more detailed mipmap level when drawing, at the expense of performance. A negative value does the reverse.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3232,
                        59
                    ],
                    "rawdesc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3232,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setMipmapFilter(filtermode: \"linear\"|\"nearest\", sharpness?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3232,
                    32
                ],
                "name": "setMipmapFilter",
                "rawdesc": "\nSets the mipmap filter mode for a Texture. Prior to 11.0 this method only worked on Images.\n\nMipmapping is useful when drawing a texture at a reduced scale. It can improve performance and reduce aliasing issues.\n\nIn created with the mipmaps flag enabled for the mipmap filter to have any effect. In versions prior to 0.10.0 it's best to call this method directly after creating the image with love.graphics.newImage, to avoid bugs in certain graphics drivers.\n\nDue to hardware restrictions and driver bugs, in versions prior to 0.10.0 images that weren't loaded from a CompressedData must have power-of-two dimensions (64x64, 512x256, etc.) to use mipmaps.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setMipmapFilter)\n\n\n---\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nfiltermode:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3232,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n@*param* `horiz` — Horizontal wrapping mode of the texture.\n\n@*param* `vert` — Vertical wrapping mode of the texture.\n\n@*param* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3247,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nSuperclass for drawable objects which represent a texture. All Textures can be drawn with Quads. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3247,
                                8
                            ],
                            "type": "self",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "Horizontal wrapping mode of the texture.",
                            "finish": [
                                3247,
                                30
                            ],
                            "name": "horiz",
                            "rawdesc": "Horizontal wrapping mode of the texture.",
                            "start": [
                                3247,
                                25
                            ],
                            "type": "local",
                            "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
                        },
                        {
                            "desc": "Vertical wrapping mode of the texture.",
                            "finish": [
                                3247,
                                36
                            ],
                            "name": "vert",
                            "rawdesc": "Vertical wrapping mode of the texture.",
                            "start": [
                                3247,
                                32
                            ],
                            "type": "local",
                            "view": "(\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")?"
                        },
                        {
                            "desc": "Wrapping mode for the z-axis of a Volume texture.",
                            "finish": [
                                3247,
                                43
                            ],
                            "name": "depth",
                            "rawdesc": "Wrapping mode for the z-axis of a Volume texture.",
                            "start": [
                                3247,
                                38
                            ],
                            "type": "local",
                            "view": "(\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")?"
                        }
                    ],
                    "desc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n@*param* `horiz` — Horizontal wrapping mode of the texture.\n\n@*param* `vert` — Vertical wrapping mode of the texture.\n\n@*param* `depth` — Wrapping mode for the z-axis of a Volume texture.\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "finish": [
                        3247,
                        48
                    ],
                    "rawdesc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                    "start": [
                        3247,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Texture:setWrap(horiz: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\", vert?: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\", depth?: \"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3247,
                    24
                ],
                "name": "setWrap",
                "rawdesc": "\nSets the wrapping properties of a Texture.\n\nThis function sets the way a Texture is repeated when it is drawn with a Quad that is larger than the texture's extent, or when a custom Shader is used which uses texture coordinates outside of [0, 1]. A texture may be clamped or set to repeat in both horizontal and vertical directions.\n\nClamped textures appear only once (with the edges of the texture stretching to fill the extent of the Quad), whereas repeated ones repeat as many times as there is room in the Quad.\n\n\n[Open in Browser](https://love2d.org/wiki/Texture:setWrap)\n\n\n```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nhoriz:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nvert:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \ndepth:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3247,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Texture",
        "type": "type",
        "view": "love.Texture"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \nlove.TextureType:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "finish": [
                    3918,
                    13
                ],
                "rawdesc": "```lua\n-- \n-- Types of textures (2D, cubemap, etc.)\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TextureType)\n-- \nlove.TextureType:\n    | \"2d\" -- Regular 2D texture with width and height.\n    | \"array\" -- Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.\n    | \"cube\" -- Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.\n    | \"volume\" -- 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.\n```",
                "start": [
                    3902,
                    10
                ],
                "type": "doc.alias",
                "view": "\"2d\"|\"array\"|\"cube\"|\"volume\""
            }
        ],
        "fields": [],
        "name": "love.TextureType",
        "type": "type",
        "view": "love.TextureType"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            167,
                            34
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            167,
                            23
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    167,
                    34
                ],
                "rawdesc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "start": [
                    167,
                    10
                ],
                "type": "doc.class",
                "view": "love.Thread",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRetrieves the error string from the thread if it produced an error.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:getError)\n\n@*return* `err` — The error message, or nil if the Thread has not caused an error.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                177,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                177,
                                8
                            ],
                            "type": "self",
                            "view": "love.Thread"
                        }
                    ],
                    "desc": "\nRetrieves the error string from the thread if it produced an error.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:getError)\n\n@*return* `err` — The error message, or nil if the Thread has not caused an error.",
                    "finish": [
                        177,
                        30
                    ],
                    "rawdesc": "\nRetrieves the error string from the thread if it produced an error.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:getError)",
                    "returns": [
                        {
                            "desc": "The error message, or nil if the Thread has not caused an error.",
                            "name": "err",
                            "rawdesc": "The error message, or nil if the Thread has not caused an error.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        177,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Thread:getError()\n  -> err: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    177,
                    24
                ],
                "name": "getError",
                "rawdesc": "\nRetrieves the error string from the thread if it produced an error.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:getError)",
                "start": [
                    177,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns whether the thread is currently running.\n\nThreads which are not running can be (re)started with Thread:start.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:isRunning)\n\n@*return* `value` — True if the thread is running, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                188,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                188,
                                8
                            ],
                            "type": "self",
                            "view": "love.Thread"
                        }
                    ],
                    "desc": "\nReturns whether the thread is currently running.\n\nThreads which are not running can be (re)started with Thread:start.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:isRunning)\n\n@*return* `value` — True if the thread is running, false otherwise.",
                    "finish": [
                        188,
                        31
                    ],
                    "rawdesc": "\nReturns whether the thread is currently running.\n\nThreads which are not running can be (re)started with Thread:start.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:isRunning)",
                    "returns": [
                        {
                            "desc": "True if the thread is running, false otherwise.",
                            "name": "value",
                            "rawdesc": "True if the thread is running, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        188,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Thread:isRunning()\n  -> value: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    188,
                    25
                ],
                "name": "isRunning",
                "rawdesc": "\nReturns whether the thread is currently running.\n\nThreads which are not running can be (re)started with Thread:start.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:isRunning)",
                "start": [
                    188,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts the thread.\n\nBeginning with version 0.9.0, threads can be restarted after they have completed their execution.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:start)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                199,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                199,
                                8
                            ],
                            "type": "self",
                            "view": "love.Thread"
                        }
                    ],
                    "desc": "\nStarts the thread.\n\nBeginning with version 0.9.0, threads can be restarted after they have completed their execution.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:start)",
                    "finish": [
                        199,
                        27
                    ],
                    "rawdesc": "\nStarts the thread.\n\nBeginning with version 0.9.0, threads can be restarted after they have completed their execution.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:start)",
                    "start": [
                        199,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Thread:start()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    199,
                    21
                ],
                "name": "start",
                "rawdesc": "\nStarts the thread.\n\nBeginning with version 0.9.0, threads can be restarted after they have completed their execution.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:start)",
                "start": [
                    199,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWait for a thread to finish.\n\nThis call will block until the thread finishes.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:wait)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "finish": [
                                209,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA Thread is a chunk of code that can run in parallel with other threads. Data can be sent between different threads with Channel objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                            "start": [
                                209,
                                8
                            ],
                            "type": "self",
                            "view": "love.Thread"
                        }
                    ],
                    "desc": "\nWait for a thread to finish.\n\nThis call will block until the thread finishes.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:wait)",
                    "finish": [
                        209,
                        26
                    ],
                    "rawdesc": "\nWait for a thread to finish.\n\nThis call will block until the thread finishes.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:wait)",
                    "start": [
                        209,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Thread:wait()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    209,
                    20
                ],
                "name": "wait",
                "rawdesc": "\nWait for a thread to finish.\n\nThis call will block until the thread finishes.\n\n\n[Open in Browser](https://love2d.org/wiki/Thread:wait)",
                "start": [
                    209,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Thread",
        "type": "type",
        "view": "love.Thread"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nlove.TimeUnit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "finish": [
                    979,
                    14
                ],
                "rawdesc": "```lua\n-- \n-- Units that represent time.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/TimeUnit)\n-- \nlove.TimeUnit:\n    | \"seconds\" -- Regular seconds.\n    | \"samples\" -- Audio samples.\n```",
                "start": [
                    971,
                    10
                ],
                "type": "doc.alias",
                "view": "\"samples\"|\"seconds\""
            }
        ],
        "fields": [],
        "name": "love.TimeUnit",
        "type": "type",
        "view": "love.TimeUnit"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            477,
                            37
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            477,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    477,
                    37
                ],
                "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "start": [
                    477,
                    10
                ],
                "type": "doc.class",
                "view": "love.Transform",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies the given other Transform object to this one.\n\nThis effectively multiplies this Transform's internal transformation matrix with the other Transform's (i.e. self * other), and stores the result in this object.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:apply)\n\n@*param* `other` — The other Transform object to apply to this Transform.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                490,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                490,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The other Transform object to apply to this Transform.",
                            "finish": [
                                490,
                                30
                            ],
                            "name": "other",
                            "rawdesc": "The other Transform object to apply to this Transform.",
                            "start": [
                                490,
                                25
                            ],
                            "type": "local",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nApplies the given other Transform object to this one.\n\nThis effectively multiplies this Transform's internal transformation matrix with the other Transform's (i.e. self * other), and stores the result in this object.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:apply)\n\n@*param* `other` — The other Transform object to apply to this Transform.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        490,
                        35
                    ],
                    "rawdesc": "\nApplies the given other Transform object to this one.\n\nThis effectively multiplies this Transform's internal transformation matrix with the other Transform's (i.e. self * other), and stores the result in this object.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:apply)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        490,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:apply(other: love.Transform)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    490,
                    24
                ],
                "name": "apply",
                "rawdesc": "\nApplies the given other Transform object to this one.\n\nThis effectively multiplies this Transform's internal transformation matrix with the other Transform's (i.e. self * other), and stores the result in this object.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:apply)",
                "start": [
                    490,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new copy of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:clone)\n\n@*return* `clone` — The copy of this Transform.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                499,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                499,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nCreates a new copy of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:clone)\n\n@*return* `clone` — The copy of this Transform.",
                    "finish": [
                        499,
                        30
                    ],
                    "rawdesc": "\nCreates a new copy of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:clone)",
                    "returns": [
                        {
                            "desc": "The copy of this Transform.",
                            "name": "clone",
                            "rawdesc": "The copy of this Transform.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        499,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:clone()\n  -> clone: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    499,
                    24
                ],
                "name": "clone",
                "rawdesc": "\nCreates a new copy of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:clone)",
                "start": [
                    499,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the internal 4x4 transformation matrix stored by this Transform. The matrix is returned in row-major order.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:getMatrix)\n\n@*return* `e1_1` — The first column of the first row of the matrix.\n\n@*return* `e1_2` — The second column of the first row of the matrix.\n\n@*return* `e1_3` — The third column of the first row of the matrix.\n\n@*return* `e1_4` — The fourth column of the first row of the matrix.\n\n@*return* `e2_1` — The first column of the second row of the matrix.\n\n@*return* `e2_2` — The second column of the second row of the matrix.\n\n@*return* `e2_3` — The third column of the second row of the matrix.\n\n@*return* `e2_4` — The fourth column of the second row of the matrix.\n\n@*return* `e3_1` — The first column of the third row of the matrix.\n\n@*return* `e3_2` — The second column of the third row of the matrix.\n\n@*return* `e3_3` — The third column of the third row of the matrix.\n\n@*return* `e3_4` — The fourth column of the third row of the matrix.\n\n@*return* `e4_1` — The first column of the fourth row of the matrix.\n\n@*return* `e4_2` — The second column of the fourth row of the matrix.\n\n@*return* `e4_3` — The third column of the fourth row of the matrix.\n\n@*return* `e4_4` — The fourth column of the fourth row of the matrix.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                523,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                523,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nGets the internal 4x4 transformation matrix stored by this Transform. The matrix is returned in row-major order.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:getMatrix)\n\n@*return* `e1_1` — The first column of the first row of the matrix.\n\n@*return* `e1_2` — The second column of the first row of the matrix.\n\n@*return* `e1_3` — The third column of the first row of the matrix.\n\n@*return* `e1_4` — The fourth column of the first row of the matrix.\n\n@*return* `e2_1` — The first column of the second row of the matrix.\n\n@*return* `e2_2` — The second column of the second row of the matrix.\n\n@*return* `e2_3` — The third column of the second row of the matrix.\n\n@*return* `e2_4` — The fourth column of the second row of the matrix.\n\n@*return* `e3_1` — The first column of the third row of the matrix.\n\n@*return* `e3_2` — The second column of the third row of the matrix.\n\n@*return* `e3_3` — The third column of the third row of the matrix.\n\n@*return* `e3_4` — The fourth column of the third row of the matrix.\n\n@*return* `e4_1` — The first column of the fourth row of the matrix.\n\n@*return* `e4_2` — The second column of the fourth row of the matrix.\n\n@*return* `e4_3` — The third column of the fourth row of the matrix.\n\n@*return* `e4_4` — The fourth column of the fourth row of the matrix.",
                    "finish": [
                        523,
                        34
                    ],
                    "rawdesc": "\nGets the internal 4x4 transformation matrix stored by this Transform. The matrix is returned in row-major order.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:getMatrix)",
                    "returns": [
                        {
                            "desc": "The first column of the first row of the matrix.",
                            "name": "e1_1",
                            "rawdesc": "The first column of the first row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the first row of the matrix.",
                            "name": "e1_2",
                            "rawdesc": "The second column of the first row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the first row of the matrix.",
                            "name": "e1_3",
                            "rawdesc": "The third column of the first row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the first row of the matrix.",
                            "name": "e1_4",
                            "rawdesc": "The fourth column of the first row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The first column of the second row of the matrix.",
                            "name": "e2_1",
                            "rawdesc": "The first column of the second row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the second row of the matrix.",
                            "name": "e2_2",
                            "rawdesc": "The second column of the second row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the second row of the matrix.",
                            "name": "e2_3",
                            "rawdesc": "The third column of the second row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the second row of the matrix.",
                            "name": "e2_4",
                            "rawdesc": "The fourth column of the second row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The first column of the third row of the matrix.",
                            "name": "e3_1",
                            "rawdesc": "The first column of the third row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the third row of the matrix.",
                            "name": "e3_2",
                            "rawdesc": "The second column of the third row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the third row of the matrix.",
                            "name": "e3_3",
                            "rawdesc": "The third column of the third row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the third row of the matrix.",
                            "name": "e3_4",
                            "rawdesc": "The fourth column of the third row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The first column of the fourth row of the matrix.",
                            "name": "e4_1",
                            "rawdesc": "The first column of the fourth row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the fourth row of the matrix.",
                            "name": "e4_2",
                            "rawdesc": "The second column of the fourth row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the fourth row of the matrix.",
                            "name": "e4_3",
                            "rawdesc": "The third column of the fourth row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the fourth row of the matrix.",
                            "name": "e4_4",
                            "rawdesc": "The fourth column of the fourth row of the matrix.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        523,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:getMatrix()\n  -> e1_1: number\n  2. e1_2: number\n  3. e1_3: number\n  4. e1_4: number\n  5. e2_1: number\n  6. e2_2: number\n  7. e2_3: number\n  8. e2_4: number\n  9. e3_1: number\n 10. e3_2: number\n 11. e3_3: number\n 12. e3_4: number\n 13. e4_1: number\n 14. e4_2: number\n 15. e4_3: number\n 16. e4_4: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    523,
                    28
                ],
                "name": "getMatrix",
                "rawdesc": "\nGets the internal 4x4 transformation matrix stored by this Transform. The matrix is returned in row-major order.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:getMatrix)",
                "start": [
                    523,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Transform containing the inverse of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverse)\n\n@*return* `inverse` — A new Transform object representing the inverse of this Transform's matrix.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                532,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                532,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nCreates a new Transform containing the inverse of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverse)\n\n@*return* `inverse` — A new Transform object representing the inverse of this Transform's matrix.",
                    "finish": [
                        532,
                        32
                    ],
                    "rawdesc": "\nCreates a new Transform containing the inverse of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverse)",
                    "returns": [
                        {
                            "desc": "A new Transform object representing the inverse of this Transform's matrix.",
                            "name": "inverse",
                            "rawdesc": "A new Transform object representing the inverse of this Transform's matrix.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        532,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:inverse()\n  -> inverse: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    532,
                    26
                ],
                "name": "inverse",
                "rawdesc": "\nCreates a new Transform containing the inverse of this Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverse)",
                "start": [
                    532,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies the reverse of the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from the local coordinate space of the Transform into global coordinates.\n\nOne use of this method can be to convert a screen-space mouse position into global world coordinates, if the given Transform has transformations applied that are used for a camera system in-game.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverseTransformPoint)\n\n@*param* `localX` — The x component of the position with the transform applied.\n\n@*param* `localY` — The y component of the position with the transform applied.\n\n@*return* `globalX` — The x component of the position in global coordinates.\n\n@*return* `globalY` — The y component of the position in global coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                548,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                548,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The x component of the position with the transform applied.",
                            "finish": [
                                548,
                                47
                            ],
                            "name": "localX",
                            "rawdesc": "The x component of the position with the transform applied.",
                            "start": [
                                548,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position with the transform applied.",
                            "finish": [
                                548,
                                55
                            ],
                            "name": "localY",
                            "rawdesc": "The y component of the position with the transform applied.",
                            "start": [
                                548,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies the reverse of the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from the local coordinate space of the Transform into global coordinates.\n\nOne use of this method can be to convert a screen-space mouse position into global world coordinates, if the given Transform has transformations applied that are used for a camera system in-game.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverseTransformPoint)\n\n@*param* `localX` — The x component of the position with the transform applied.\n\n@*param* `localY` — The y component of the position with the transform applied.\n\n@*return* `globalX` — The x component of the position in global coordinates.\n\n@*return* `globalY` — The y component of the position in global coordinates.",
                    "finish": [
                        548,
                        60
                    ],
                    "rawdesc": "\nApplies the reverse of the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from the local coordinate space of the Transform into global coordinates.\n\nOne use of this method can be to convert a screen-space mouse position into global world coordinates, if the given Transform has transformations applied that are used for a camera system in-game.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverseTransformPoint)",
                    "returns": [
                        {
                            "desc": "The x component of the position in global coordinates.",
                            "name": "globalX",
                            "rawdesc": "The x component of the position in global coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position in global coordinates.",
                            "name": "globalY",
                            "rawdesc": "The y component of the position in global coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        548,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:inverseTransformPoint(localX: number, localY: number)\n  -> globalX: number\n  2. globalY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    548,
                    40
                ],
                "name": "inverseTransformPoint",
                "rawdesc": "\nApplies the reverse of the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from the local coordinate space of the Transform into global coordinates.\n\nOne use of this method can be to convert a screen-space mouse position into global world coordinates, if the given Transform has transformations applied that are used for a camera system in-game.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:inverseTransformPoint)",
                "start": [
                    548,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the Transform is an affine transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:isAffine2DTransform)\n\n@*return* `affine` — true if the transform object is an affine transformation, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                557,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                557,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nChecks whether the Transform is an affine transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:isAffine2DTransform)\n\n@*return* `affine` — true if the transform object is an affine transformation, false otherwise.",
                    "finish": [
                        557,
                        44
                    ],
                    "rawdesc": "\nChecks whether the Transform is an affine transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:isAffine2DTransform)",
                    "returns": [
                        {
                            "desc": "true if the transform object is an affine transformation, false otherwise.",
                            "name": "affine",
                            "rawdesc": "true if the transform object is an affine transformation, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        557,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:isAffine2DTransform()\n  -> affine: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    557,
                    38
                ],
                "name": "isAffine2DTransform",
                "rawdesc": "\nChecks whether the Transform is an affine transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:isAffine2DTransform)",
                "start": [
                    557,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the Transform to an identity state. All previously applied transformations are erased.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:reset)\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                566,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                566,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nResets the Transform to an identity state. All previously applied transformations are erased.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:reset)\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        566,
                        30
                    ],
                    "rawdesc": "\nResets the Transform to an identity state. All previously applied transformations are erased.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:reset)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        566,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:reset()\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    566,
                    24
                ],
                "name": "reset",
                "rawdesc": "\nResets the Transform to an identity state. All previously applied transformations are erased.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:reset)",
                "start": [
                    566,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies a rotation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:rotate)\n\n@*param* `angle` — The relative angle in radians to rotate this Transform by.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                576,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                576,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The relative angle in radians to rotate this Transform by.",
                            "finish": [
                                576,
                                31
                            ],
                            "name": "angle",
                            "rawdesc": "The relative angle in radians to rotate this Transform by.",
                            "start": [
                                576,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies a rotation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:rotate)\n\n@*param* `angle` — The relative angle in radians to rotate this Transform by.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        576,
                        36
                    ],
                    "rawdesc": "\nApplies a rotation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:rotate)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        576,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:rotate(angle: number)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    576,
                    25
                ],
                "name": "rotate",
                "rawdesc": "\nApplies a rotation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:rotate)",
                "start": [
                    576,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nScales the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:scale)\n\n@*param* `sx` — The relative scale factor along the x-axis.\n\n@*param* `sy` — The relative scale factor along the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                587,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                587,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The relative scale factor along the x-axis.",
                            "finish": [
                                587,
                                27
                            ],
                            "name": "sx",
                            "rawdesc": "The relative scale factor along the x-axis.",
                            "start": [
                                587,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The relative scale factor along the y-axis.",
                            "finish": [
                                587,
                                31
                            ],
                            "name": "sy",
                            "rawdesc": "The relative scale factor along the y-axis.",
                            "start": [
                                587,
                                29
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nScales the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:scale)\n\n@*param* `sx` — The relative scale factor along the x-axis.\n\n@*param* `sy` — The relative scale factor along the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        587,
                        36
                    ],
                    "rawdesc": "\nScales the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:scale)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        587,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:scale(sx: number, sy?: number)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    587,
                    24
                ],
                "name": "scale",
                "rawdesc": "\nScales the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:scale)",
                "start": [
                    587,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDirectly sets the Transform's internal 4x4 transformation matrix.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setMatrix)\n\n\n---\n\n@*param* `e1_1` — The first column of the first row of the matrix.\n\n@*param* `e1_2` — The second column of the first row of the matrix.\n\n@*param* `e1_3` — The third column of the first row of the matrix.\n\n@*param* `e1_4` — The fourth column of the first row of the matrix.\n\n@*param* `e2_1` — The first column of the second row of the matrix.\n\n@*param* `e2_2` — The second column of the second row of the matrix.\n\n@*param* `e2_3` — The third column of the second row of the matrix.\n\n@*param* `e2_4` — The fourth column of the second row of the matrix.\n\n@*param* `e3_1` — The first column of the third row of the matrix.\n\n@*param* `e3_2` — The second column of the third row of the matrix.\n\n@*param* `e3_3` — The third column of the third row of the matrix.\n\n@*param* `e3_4` — The fourth column of the third row of the matrix.\n\n@*param* `e4_1` — The first column of the fourth row of the matrix.\n\n@*param* `e4_2` — The second column of the fourth row of the matrix.\n\n@*param* `e4_3` — The third column of the fourth row of the matrix.\n\n@*param* `e4_4` — The fourth column of the fourth row of the matrix.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                615,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                615,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The first column of the first row of the matrix.",
                            "finish": [
                                616,
                                5
                            ],
                            "name": "e1_1",
                            "rawdesc": "The first column of the first row of the matrix.",
                            "start": [
                                616,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the first row of the matrix.",
                            "finish": [
                                617,
                                5
                            ],
                            "name": "e1_2",
                            "rawdesc": "The second column of the first row of the matrix.",
                            "start": [
                                617,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the first row of the matrix.",
                            "finish": [
                                618,
                                5
                            ],
                            "name": "e1_3",
                            "rawdesc": "The third column of the first row of the matrix.",
                            "start": [
                                618,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the first row of the matrix.",
                            "finish": [
                                619,
                                5
                            ],
                            "name": "e1_4",
                            "rawdesc": "The fourth column of the first row of the matrix.",
                            "start": [
                                619,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The first column of the second row of the matrix.",
                            "finish": [
                                620,
                                5
                            ],
                            "name": "e2_1",
                            "rawdesc": "The first column of the second row of the matrix.",
                            "start": [
                                620,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the second row of the matrix.",
                            "finish": [
                                621,
                                5
                            ],
                            "name": "e2_2",
                            "rawdesc": "The second column of the second row of the matrix.",
                            "start": [
                                621,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the second row of the matrix.",
                            "finish": [
                                622,
                                5
                            ],
                            "name": "e2_3",
                            "rawdesc": "The third column of the second row of the matrix.",
                            "start": [
                                622,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the second row of the matrix.",
                            "finish": [
                                623,
                                5
                            ],
                            "name": "e2_4",
                            "rawdesc": "The fourth column of the second row of the matrix.",
                            "start": [
                                623,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The first column of the third row of the matrix.",
                            "finish": [
                                624,
                                5
                            ],
                            "name": "e3_1",
                            "rawdesc": "The first column of the third row of the matrix.",
                            "start": [
                                624,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the third row of the matrix.",
                            "finish": [
                                625,
                                5
                            ],
                            "name": "e3_2",
                            "rawdesc": "The second column of the third row of the matrix.",
                            "start": [
                                625,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the third row of the matrix.",
                            "finish": [
                                626,
                                5
                            ],
                            "name": "e3_3",
                            "rawdesc": "The third column of the third row of the matrix.",
                            "start": [
                                626,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the third row of the matrix.",
                            "finish": [
                                627,
                                5
                            ],
                            "name": "e3_4",
                            "rawdesc": "The fourth column of the third row of the matrix.",
                            "start": [
                                627,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The first column of the fourth row of the matrix.",
                            "finish": [
                                628,
                                5
                            ],
                            "name": "e4_1",
                            "rawdesc": "The first column of the fourth row of the matrix.",
                            "start": [
                                628,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The second column of the fourth row of the matrix.",
                            "finish": [
                                629,
                                5
                            ],
                            "name": "e4_2",
                            "rawdesc": "The second column of the fourth row of the matrix.",
                            "start": [
                                629,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The third column of the fourth row of the matrix.",
                            "finish": [
                                630,
                                5
                            ],
                            "name": "e4_3",
                            "rawdesc": "The third column of the fourth row of the matrix.",
                            "start": [
                                630,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The fourth column of the fourth row of the matrix.",
                            "finish": [
                                631,
                                5
                            ],
                            "name": "e4_4",
                            "rawdesc": "The fourth column of the fourth row of the matrix.",
                            "start": [
                                631,
                                1
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDirectly sets the Transform's internal 4x4 transformation matrix.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setMatrix)\n\n\n---\n\n@*param* `e1_1` — The first column of the first row of the matrix.\n\n@*param* `e1_2` — The second column of the first row of the matrix.\n\n@*param* `e1_3` — The third column of the first row of the matrix.\n\n@*param* `e1_4` — The fourth column of the first row of the matrix.\n\n@*param* `e2_1` — The first column of the second row of the matrix.\n\n@*param* `e2_2` — The second column of the second row of the matrix.\n\n@*param* `e2_3` — The third column of the second row of the matrix.\n\n@*param* `e2_4` — The fourth column of the second row of the matrix.\n\n@*param* `e3_1` — The first column of the third row of the matrix.\n\n@*param* `e3_2` — The second column of the third row of the matrix.\n\n@*param* `e3_3` — The third column of the third row of the matrix.\n\n@*param* `e3_4` — The fourth column of the third row of the matrix.\n\n@*param* `e4_1` — The first column of the fourth row of the matrix.\n\n@*param* `e4_2` — The second column of the fourth row of the matrix.\n\n@*param* `e4_3` — The third column of the fourth row of the matrix.\n\n@*param* `e4_4` — The fourth column of the fourth row of the matrix.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        633,
                        3
                    ],
                    "rawdesc": "\nDirectly sets the Transform's internal 4x4 transformation matrix.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setMatrix)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        615,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:setMatrix(e1_1: number, e1_2: number, e1_3: number, e1_4: number, e2_1: number, e2_2: number, e2_3: number, e2_4: number, e3_1: number, e3_2: number, e3_3: number, e3_4: number, e4_1: number, e4_2: number, e4_3: number, e4_4: number)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    615,
                    28
                ],
                "name": "setMatrix",
                "rawdesc": "\nDirectly sets the Transform's internal 4x4 transformation matrix.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setMatrix)",
                "start": [
                    615,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the Transform to the specified transformation parameters.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setTransformation)\n\n@*param* `x` — The position of the Transform on the x-axis.\n\n@*param* `y` — The position of the Transform on the y-axis.\n\n@*param* `angle` — The orientation of the Transform in radians.\n\n@*param* `sx` — Scale factor on the x-axis.\n\n@*param* `sy` — Scale factor on the y-axis.\n\n@*param* `ox` — Origin offset on the x-axis.\n\n@*param* `oy` — Origin offset on the y-axis.\n\n@*param* `kx` — Shearing / skew factor on the x-axis.\n\n@*param* `ky` — Shearing / skew factor on the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                651,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                651,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The position of the Transform on the x-axis.",
                            "finish": [
                                651,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The position of the Transform on the x-axis.",
                            "start": [
                                651,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the Transform on the y-axis.",
                            "finish": [
                                651,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The position of the Transform on the y-axis.",
                            "start": [
                                651,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The orientation of the Transform in radians.",
                            "finish": [
                                651,
                                48
                            ],
                            "name": "angle",
                            "rawdesc": "The orientation of the Transform in radians.",
                            "start": [
                                651,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor on the x-axis.",
                            "finish": [
                                651,
                                52
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor on the x-axis.",
                            "start": [
                                651,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor on the y-axis.",
                            "finish": [
                                651,
                                56
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor on the y-axis.",
                            "start": [
                                651,
                                54
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset on the x-axis.",
                            "finish": [
                                651,
                                60
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset on the x-axis.",
                            "start": [
                                651,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset on the y-axis.",
                            "finish": [
                                651,
                                64
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset on the y-axis.",
                            "start": [
                                651,
                                62
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing / skew factor on the x-axis.",
                            "finish": [
                                651,
                                68
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing / skew factor on the x-axis.",
                            "start": [
                                651,
                                66
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing / skew factor on the y-axis.",
                            "finish": [
                                651,
                                72
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing / skew factor on the y-axis.",
                            "start": [
                                651,
                                70
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nResets the Transform to the specified transformation parameters.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setTransformation)\n\n@*param* `x` — The position of the Transform on the x-axis.\n\n@*param* `y` — The position of the Transform on the y-axis.\n\n@*param* `angle` — The orientation of the Transform in radians.\n\n@*param* `sx` — Scale factor on the x-axis.\n\n@*param* `sy` — Scale factor on the y-axis.\n\n@*param* `ox` — Origin offset on the x-axis.\n\n@*param* `oy` — Origin offset on the y-axis.\n\n@*param* `kx` — Shearing / skew factor on the x-axis.\n\n@*param* `ky` — Shearing / skew factor on the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        651,
                        77
                    ],
                    "rawdesc": "\nResets the Transform to the specified transformation parameters.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setTransformation)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        651,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:setTransformation(x: number, y: number, angle?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    651,
                    36
                ],
                "name": "setTransformation",
                "rawdesc": "\nResets the Transform to the specified transformation parameters.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:setTransformation)",
                "start": [
                    651,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies a shear factor (skew) to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:shear)\n\n@*param* `kx` — The shear factor along the x-axis.\n\n@*param* `ky` — The shear factor along the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                662,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                662,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The shear factor along the x-axis.",
                            "finish": [
                                662,
                                27
                            ],
                            "name": "kx",
                            "rawdesc": "The shear factor along the x-axis.",
                            "start": [
                                662,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shear factor along the y-axis.",
                            "finish": [
                                662,
                                31
                            ],
                            "name": "ky",
                            "rawdesc": "The shear factor along the y-axis.",
                            "start": [
                                662,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies a shear factor (skew) to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:shear)\n\n@*param* `kx` — The shear factor along the x-axis.\n\n@*param* `ky` — The shear factor along the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        662,
                        36
                    ],
                    "rawdesc": "\nApplies a shear factor (skew) to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:shear)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        662,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:shear(kx: number, ky: number)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    662,
                    24
                ],
                "name": "shear",
                "rawdesc": "\nApplies a shear factor (skew) to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:shear)",
                "start": [
                    662,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from global coordinates into the local coordinate space of the Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:transformPoint)\n\n@*param* `globalX` — The x component of the position in global coordinates.\n\n@*param* `globalY` — The y component of the position in global coordinates.\n\n@*return* `localX` — The x component of the position with the transform applied.\n\n@*return* `localY` — The y component of the position with the transform applied.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                676,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                676,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The x component of the position in global coordinates.",
                            "finish": [
                                676,
                                41
                            ],
                            "name": "globalX",
                            "rawdesc": "The x component of the position in global coordinates.",
                            "start": [
                                676,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position in global coordinates.",
                            "finish": [
                                676,
                                50
                            ],
                            "name": "globalY",
                            "rawdesc": "The y component of the position in global coordinates.",
                            "start": [
                                676,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from global coordinates into the local coordinate space of the Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:transformPoint)\n\n@*param* `globalX` — The x component of the position in global coordinates.\n\n@*param* `globalY` — The y component of the position in global coordinates.\n\n@*return* `localX` — The x component of the position with the transform applied.\n\n@*return* `localY` — The y component of the position with the transform applied.",
                    "finish": [
                        676,
                        55
                    ],
                    "rawdesc": "\nApplies the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from global coordinates into the local coordinate space of the Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:transformPoint)",
                    "returns": [
                        {
                            "desc": "The x component of the position with the transform applied.",
                            "name": "localX",
                            "rawdesc": "The x component of the position with the transform applied.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position with the transform applied.",
                            "name": "localY",
                            "rawdesc": "The y component of the position with the transform applied.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        676,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:transformPoint(globalX: number, globalY: number)\n  -> localX: number\n  2. localY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    676,
                    33
                ],
                "name": "transformPoint",
                "rawdesc": "\nApplies the Transform object's transformation to the given 2D position.\n\nThis effectively converts the given position from global coordinates into the local coordinate space of the Transform.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:transformPoint)",
                "start": [
                    676,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies a translation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:translate)\n\n@*param* `dx` — The relative translation along the x-axis.\n\n@*param* `dy` — The relative translation along the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "finish": [
                                687,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nObject containing a coordinate system transformation.\n\nThe love.graphics module has several functions and function variants which accept Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                            "start": [
                                687,
                                8
                            ],
                            "type": "self",
                            "view": "love.Transform"
                        },
                        {
                            "desc": "The relative translation along the x-axis.",
                            "finish": [
                                687,
                                31
                            ],
                            "name": "dx",
                            "rawdesc": "The relative translation along the x-axis.",
                            "start": [
                                687,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The relative translation along the y-axis.",
                            "finish": [
                                687,
                                35
                            ],
                            "name": "dy",
                            "rawdesc": "The relative translation along the y-axis.",
                            "start": [
                                687,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nApplies a translation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:translate)\n\n@*param* `dx` — The relative translation along the x-axis.\n\n@*param* `dy` — The relative translation along the y-axis.\n\n@*return* `transform` — The Transform object the method was called on. Allows easily chaining Transform methods.",
                    "finish": [
                        687,
                        40
                    ],
                    "rawdesc": "\nApplies a translation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:translate)",
                    "returns": [
                        {
                            "desc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "name": "transform",
                            "rawdesc": "The Transform object the method was called on. Allows easily chaining Transform methods.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        687,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Transform:translate(dx: number, dy: number)\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    687,
                    28
                ],
                "name": "translate",
                "rawdesc": "\nApplies a translation to the Transform's coordinate system. This method does not reset any previously applied transformations.\n\n\n[Open in Browser](https://love2d.org/wiki/Transform:translate)",
                "start": [
                    687,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Transform",
        "type": "type",
        "view": "love.Transform"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- The frequency at which a vertex shader fetches the vertex attribute's data from the Mesh when it's drawn.\n-- \n-- Per-instance attributes can be used to render a Mesh many times with different positions, colors, or other attributes via a single love.graphics.drawInstanced call, without using the love_InstanceID vertex shader variable.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexAttributeStep)\n-- \nlove.VertexAttributeStep:\n    | \"pervertex\" -- The vertex attribute will have a unique value for each vertex in the Mesh.\n    | \"perinstance\" -- The vertex attribute will have a unique value for each instance of the Mesh.\n```",
                "finish": [
                    3936,
                    18
                ],
                "rawdesc": "```lua\n-- \n-- The frequency at which a vertex shader fetches the vertex attribute's data from the Mesh when it's drawn.\n-- \n-- Per-instance attributes can be used to render a Mesh many times with different positions, colors, or other attributes via a single love.graphics.drawInstanced call, without using the love_InstanceID vertex shader variable.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexAttributeStep)\n-- \nlove.VertexAttributeStep:\n    | \"pervertex\" -- The vertex attribute will have a unique value for each vertex in the Mesh.\n    | \"perinstance\" -- The vertex attribute will have a unique value for each instance of the Mesh.\n```",
                "start": [
                    3928,
                    10
                ],
                "type": "doc.alias",
                "view": "\"perinstance\"|\"pervertex\""
            }
        ],
        "fields": [],
        "name": "love.VertexAttributeStep",
        "type": "type",
        "view": "love.VertexAttributeStep"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nlove.VertexWinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "finish": [
                    3952,
                    10
                ],
                "rawdesc": "```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nlove.VertexWinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "start": [
                    3944,
                    10
                ],
                "type": "doc.alias",
                "view": "\"ccw\"|\"cw\""
            }
        ],
        "fields": [],
        "name": "love.VertexWinding",
        "type": "type",
        "view": "love.VertexWinding"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": [
                    {
                        "desc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "finish": [
                            3255,
                            35
                        ],
                        "rawdesc": "\nSuperclass for all things that can be drawn on screen. This is an abstract type that can't be created directly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                        "start": [
                            3255,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Drawable"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            3255,
                            48
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            3255,
                            37
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3255,
                    48
                ],
                "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    3255,
                    10
                ],
                "type": "doc.class",
                "view": "love.Video",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getDimensions)\n\n@*return* `width` — The width of the Video.\n\n@*return* `height` — The height of the Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3266,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3266,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the width and height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getDimensions)\n\n@*return* `width` — The width of the Video.\n\n@*return* `height` — The height of the Video.",
                    "finish": [
                        3266,
                        34
                    ],
                    "rawdesc": "\nGets the width and height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the Video.",
                            "name": "width",
                            "rawdesc": "The width of the Video.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Video.",
                            "name": "height",
                            "rawdesc": "The height of the Video.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3266,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3266,
                    28
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getDimensions)",
                "start": [
                    3266,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getFilter)\n\n@*return* `min` — The filter mode used when scaling the Video down.\n\n@*return* `mag` — The filter mode used when scaling the Video up.\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3277,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3277,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getFilter)\n\n@*return* `min` — The filter mode used when scaling the Video down.\n\n@*return* `mag` — The filter mode used when scaling the Video up.\n\n@*return* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3277,
                        30
                    ],
                    "rawdesc": "\nGets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "The filter mode used when scaling the Video down.",
                            "name": "min",
                            "rawdesc": "The filter mode used when scaling the Video down.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "The filter mode used when scaling the Video up.",
                            "name": "mag",
                            "rawdesc": "The filter mode used when scaling the Video up.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3277,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:getFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3277,
                    24
                ],
                "name": "getFilter",
                "rawdesc": "\nGets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3277,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getHeight)\n\n@*return* `height` — The height of the Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3286,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3286,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getHeight)\n\n@*return* `height` — The height of the Video.",
                    "finish": [
                        3286,
                        30
                    ],
                    "rawdesc": "\nGets the height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the Video.",
                            "name": "height",
                            "rawdesc": "The height of the Video.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3286,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3286,
                    24
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getHeight)",
                "start": [
                    3286,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the audio Source used for playing back the video's audio. May return nil if the video has no audio, or if Video:setSource is called with a nil argument.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getSource)\n\n@*return* `source` — The audio Source used for audio playback, or nil if the video has no audio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3295,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3295,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the audio Source used for playing back the video's audio. May return nil if the video has no audio, or if Video:setSource is called with a nil argument.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getSource)\n\n@*return* `source` — The audio Source used for audio playback, or nil if the video has no audio.",
                    "finish": [
                        3295,
                        30
                    ],
                    "rawdesc": "\nGets the audio Source used for playing back the video's audio. May return nil if the video has no audio, or if Video:setSource is called with a nil argument.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getSource)",
                    "returns": [
                        {
                            "desc": "The audio Source used for audio playback, or nil if the video has no audio.",
                            "name": "source",
                            "rawdesc": "The audio Source used for audio playback, or nil if the video has no audio.",
                            "type": "function.return",
                            "view": "love.Source"
                        }
                    ],
                    "start": [
                        3295,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:getSource()\n  -> source: love.Source"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3295,
                    24
                ],
                "name": "getSource",
                "rawdesc": "\nGets the audio Source used for playing back the video's audio. May return nil if the video has no audio, or if Video:setSource is called with a nil argument.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getSource)",
                "start": [
                    3295,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the VideoStream object used for decoding and controlling the video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getStream)\n\n@*return* `stream` — The VideoStream used for decoding and controlling the video.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3304,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3304,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the VideoStream object used for decoding and controlling the video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getStream)\n\n@*return* `stream` — The VideoStream used for decoding and controlling the video.",
                    "finish": [
                        3304,
                        30
                    ],
                    "rawdesc": "\nGets the VideoStream object used for decoding and controlling the video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getStream)",
                    "returns": [
                        {
                            "desc": "The VideoStream used for decoding and controlling the video.",
                            "name": "stream",
                            "rawdesc": "The VideoStream used for decoding and controlling the video.",
                            "type": "function.return",
                            "view": "love.VideoStream"
                        }
                    ],
                    "start": [
                        3304,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:getStream()\n  -> stream: love.VideoStream"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3304,
                    24
                ],
                "name": "getStream",
                "rawdesc": "\nGets the VideoStream object used for decoding and controlling the video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getStream)",
                "start": [
                    3304,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getWidth)\n\n@*return* `width` — The width of the Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3313,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3313,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the width of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getWidth)\n\n@*return* `width` — The width of the Video.",
                    "finish": [
                        3313,
                        29
                    ],
                    "rawdesc": "\nGets the width of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the Video.",
                            "name": "width",
                            "rawdesc": "The width of the Video.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3313,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3313,
                    23
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width of the Video in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:getWidth)",
                "start": [
                    3313,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Video is currently playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:isPlaying)\n\n@*return* `playing` — Whether the video is playing.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3322,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3322,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets whether the Video is currently playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:isPlaying)\n\n@*return* `playing` — Whether the video is playing.",
                    "finish": [
                        3322,
                        30
                    ],
                    "rawdesc": "\nGets whether the Video is currently playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:isPlaying)",
                    "returns": [
                        {
                            "desc": "Whether the video is playing.",
                            "name": "playing",
                            "rawdesc": "Whether the video is playing.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3322,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:isPlaying()\n  -> playing: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3322,
                    24
                ],
                "name": "isPlaying",
                "rawdesc": "\nGets whether the Video is currently playing.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:isPlaying)",
                "start": [
                    3322,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:pause)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3330,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3330,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nPauses the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:pause)",
                    "finish": [
                        3330,
                        26
                    ],
                    "rawdesc": "\nPauses the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:pause)",
                    "start": [
                        3330,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:pause()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3330,
                    20
                ],
                "name": "pause",
                "rawdesc": "\nPauses the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:pause)",
                "start": [
                    3330,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts playing the Video. In order for the video to appear onscreen it must be drawn with love.graphics.draw.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:play)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3338,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3338,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nStarts playing the Video. In order for the video to appear onscreen it must be drawn with love.graphics.draw.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:play)",
                    "finish": [
                        3338,
                        25
                    ],
                    "rawdesc": "\nStarts playing the Video. In order for the video to appear onscreen it must be drawn with love.graphics.draw.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:play)",
                    "start": [
                        3338,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:play()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3338,
                    19
                ],
                "name": "play",
                "rawdesc": "\nStarts playing the Video. In order for the video to appear onscreen it must be drawn with love.graphics.draw.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:play)",
                "start": [
                    3338,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRewinds the Video to the beginning.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:rewind)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3346,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3346,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nRewinds the Video to the beginning.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:rewind)",
                    "finish": [
                        3346,
                        27
                    ],
                    "rawdesc": "\nRewinds the Video to the beginning.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:rewind)",
                    "start": [
                        3346,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:rewind()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3346,
                    21
                ],
                "name": "rewind",
                "rawdesc": "\nRewinds the Video to the beginning.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:rewind)",
                "start": [
                    3346,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:seek)\n\n@*param* `offset` — The time in seconds since the beginning of the Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3355,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3355,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        },
                        {
                            "desc": "The time in seconds since the beginning of the Video.",
                            "finish": [
                                3355,
                                26
                            ],
                            "name": "offset",
                            "rawdesc": "The time in seconds since the beginning of the Video.",
                            "start": [
                                3355,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:seek)\n\n@*param* `offset` — The time in seconds since the beginning of the Video.",
                    "finish": [
                        3355,
                        31
                    ],
                    "rawdesc": "\nSets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:seek)",
                    "start": [
                        3355,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:seek(offset: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3355,
                    19
                ],
                "name": "seek",
                "rawdesc": "\nSets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:seek)",
                "start": [
                    3355,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setFilter)\n\n@*param* `min` — The filter mode used when scaling the Video down.\n\n@*param* `mag` — The filter mode used when scaling the Video up.\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3366,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3366,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        },
                        {
                            "desc": "The filter mode used when scaling the Video down.",
                            "finish": [
                                3366,
                                28
                            ],
                            "name": "min",
                            "rawdesc": "The filter mode used when scaling the Video down.",
                            "start": [
                                3366,
                                25
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "The filter mode used when scaling the Video up.",
                            "finish": [
                                3366,
                                33
                            ],
                            "name": "mag",
                            "rawdesc": "The filter mode used when scaling the Video up.",
                            "start": [
                                3366,
                                30
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of anisotropic filtering used.",
                            "finish": [
                                3366,
                                45
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of anisotropic filtering used.",
                            "start": [
                                3366,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setFilter)\n\n@*param* `min` — The filter mode used when scaling the Video down.\n\n@*param* `mag` — The filter mode used when scaling the Video up.\n\n@*param* `anisotropy` — Maximum amount of anisotropic filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        3366,
                        50
                    ],
                    "rawdesc": "\nSets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        3366,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:setFilter(min: \"linear\"|\"nearest\", mag: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3366,
                    24
                ],
                "name": "setFilter",
                "rawdesc": "\nSets the scaling filters used when drawing the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    3366,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the audio Source used for playing back the video's audio. The audio Source also controls playback speed and synchronization.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setSource)\n\n@*param* `source` — The audio Source used for audio playback, or nil to disable audio synchronization.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3375,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3375,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        },
                        {
                            "desc": "The audio Source used for audio playback, or nil to disable audio synchronization.",
                            "finish": [
                                3375,
                                31
                            ],
                            "name": "source",
                            "rawdesc": "The audio Source used for audio playback, or nil to disable audio synchronization.",
                            "start": [
                                3375,
                                25
                            ],
                            "type": "local",
                            "view": "(love.Source)?"
                        }
                    ],
                    "desc": "\nSets the audio Source used for playing back the video's audio. The audio Source also controls playback speed and synchronization.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setSource)\n\n@*param* `source` — The audio Source used for audio playback, or nil to disable audio synchronization.",
                    "finish": [
                        3375,
                        36
                    ],
                    "rawdesc": "\nSets the audio Source used for playing back the video's audio. The audio Source also controls playback speed and synchronization.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setSource)",
                    "start": [
                        3375,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:setSource(source?: love.Source)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3375,
                    24
                ],
                "name": "setSource",
                "rawdesc": "\nSets the audio Source used for playing back the video's audio. The audio Source also controls playback speed and synchronization.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:setSource)",
                "start": [
                    3375,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:tell)\n\n@*return* `seconds` — The time in seconds since the beginning of the Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "finish": [
                                3384,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA drawable video.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                            "start": [
                                3384,
                                8
                            ],
                            "type": "self",
                            "view": "love.Video"
                        }
                    ],
                    "desc": "\nGets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:tell)\n\n@*return* `seconds` — The time in seconds since the beginning of the Video.",
                    "finish": [
                        3384,
                        25
                    ],
                    "rawdesc": "\nGets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:tell)",
                    "returns": [
                        {
                            "desc": "The time in seconds since the beginning of the Video.",
                            "name": "seconds",
                            "rawdesc": "The time in seconds since the beginning of the Video.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3384,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Video:tell()\n  -> seconds: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    3384,
                    19
                ],
                "name": "tell",
                "rawdesc": "\nGets the current playback position of the Video.\n\n\n[Open in Browser](https://love2d.org/wiki/Video:tell)",
                "start": [
                    3384,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.Video",
        "type": "type",
        "view": "love.Video"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            30,
                            39
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            30,
                            28
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    30,
                    39
                ],
                "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "start": [
                    30,
                    10
                ],
                "type": "doc.class",
                "view": "love.VideoStream",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filename of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:getFilename)\n\n@*return* `filename` — The filename of the VideoStream",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                40,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                40,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        }
                    ],
                    "desc": "\nGets the filename of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:getFilename)\n\n@*return* `filename` — The filename of the VideoStream",
                    "finish": [
                        40,
                        38
                    ],
                    "rawdesc": "\nGets the filename of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:getFilename)",
                    "returns": [
                        {
                            "desc": "The filename of the VideoStream",
                            "name": "filename",
                            "rawdesc": "The filename of the VideoStream",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        40,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:getFilename()\n  -> filename: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    40,
                    32
                ],
                "name": "getFilename",
                "rawdesc": "\nGets the filename of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:getFilename)",
                "start": [
                    40,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the VideoStream is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:isPlaying)\n\n@*return* `playing` — Whether the VideoStream is playing.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                49,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                49,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        }
                    ],
                    "desc": "\nGets whether the VideoStream is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:isPlaying)\n\n@*return* `playing` — Whether the VideoStream is playing.",
                    "finish": [
                        49,
                        36
                    ],
                    "rawdesc": "\nGets whether the VideoStream is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:isPlaying)",
                    "returns": [
                        {
                            "desc": "Whether the VideoStream is playing.",
                            "name": "playing",
                            "rawdesc": "Whether the VideoStream is playing.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        49,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:isPlaying()\n  -> playing: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    49,
                    30
                ],
                "name": "isPlaying",
                "rawdesc": "\nGets whether the VideoStream is playing.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:isPlaying)",
                "start": [
                    49,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:pause)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                57,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                57,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        }
                    ],
                    "desc": "\nPauses the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:pause)",
                    "finish": [
                        57,
                        32
                    ],
                    "rawdesc": "\nPauses the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:pause)",
                    "start": [
                        57,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:pause()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    57,
                    26
                ],
                "name": "pause",
                "rawdesc": "\nPauses the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:pause)",
                "start": [
                    57,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPlays the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:play)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                65,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                65,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        }
                    ],
                    "desc": "\nPlays the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:play)",
                    "finish": [
                        65,
                        31
                    ],
                    "rawdesc": "\nPlays the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:play)",
                    "start": [
                        65,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:play()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    65,
                    25
                ],
                "name": "play",
                "rawdesc": "\nPlays the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:play)",
                "start": [
                    65,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRewinds the VideoStream. Synonym to VideoStream:seek(0).\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:rewind)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                73,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                73,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        }
                    ],
                    "desc": "\nRewinds the VideoStream. Synonym to VideoStream:seek(0).\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:rewind)",
                    "finish": [
                        73,
                        33
                    ],
                    "rawdesc": "\nRewinds the VideoStream. Synonym to VideoStream:seek(0).\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:rewind)",
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:rewind()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    73,
                    27
                ],
                "name": "rewind",
                "rawdesc": "\nRewinds the VideoStream. Synonym to VideoStream:seek(0).\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:rewind)",
                "start": [
                    73,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:seek)\n\n@*param* `offset` — The time in seconds since the beginning of the VideoStream.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                82,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                82,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        },
                        {
                            "desc": "The time in seconds since the beginning of the VideoStream.",
                            "finish": [
                                82,
                                32
                            ],
                            "name": "offset",
                            "rawdesc": "The time in seconds since the beginning of the VideoStream.",
                            "start": [
                                82,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:seek)\n\n@*param* `offset` — The time in seconds since the beginning of the VideoStream.",
                    "finish": [
                        82,
                        37
                    ],
                    "rawdesc": "\nSets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:seek)",
                    "start": [
                        82,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:seek(offset: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    82,
                    25
                ],
                "name": "seek",
                "rawdesc": "\nSets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:seek)",
                "start": [
                    82,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:tell)\n\n@*return* `seconds` — The number of seconds sionce the beginning of the VideoStream.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "finish": [
                                91,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAn object which decodes, streams, and controls Videos.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                            "start": [
                                91,
                                8
                            ],
                            "type": "self",
                            "view": "love.VideoStream"
                        }
                    ],
                    "desc": "\nGets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:tell)\n\n@*return* `seconds` — The number of seconds sionce the beginning of the VideoStream.",
                    "finish": [
                        91,
                        31
                    ],
                    "rawdesc": "\nGets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:tell)",
                    "returns": [
                        {
                            "desc": "The number of seconds sionce the beginning of the VideoStream.",
                            "name": "seconds",
                            "rawdesc": "The number of seconds sionce the beginning of the VideoStream.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        91,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.VideoStream:tell()\n  -> seconds: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    91,
                    25
                ],
                "name": "tell",
                "rawdesc": "\nGets the current playback position of the VideoStream.\n\n\n[Open in Browser](https://love2d.org/wiki/VideoStream:tell)",
                "start": [
                    91,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.VideoStream",
        "type": "type",
        "view": "love.VideoStream"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2781,
                            36
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2781,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2781,
                            49
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2781,
                            38
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2781,
                    49
                ],
                "rawdesc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2781,
                    10
                ],
                "type": "doc.class",
                "view": "love.WeldJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the damping ratio of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getDampingRatio)\n\n@*return* `ratio` — The damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2791,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2791,
                                8
                            ],
                            "type": "self",
                            "view": "love.WeldJoint"
                        }
                    ],
                    "desc": "\nReturns the damping ratio of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getDampingRatio)\n\n@*return* `ratio` — The damping ratio.",
                    "finish": [
                        2791,
                        40
                    ],
                    "rawdesc": "\nReturns the damping ratio of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getDampingRatio)",
                    "returns": [
                        {
                            "desc": "The damping ratio.",
                            "name": "ratio",
                            "rawdesc": "The damping ratio.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2791,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WeldJoint:getDampingRatio()\n  -> ratio: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2791,
                    34
                ],
                "name": "getDampingRatio",
                "rawdesc": "\nReturns the damping ratio of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getDampingRatio)",
                "start": [
                    2791,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getFrequency)\n\n@*return* `freq` — The frequency in hertz.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2800,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2800,
                                8
                            ],
                            "type": "self",
                            "view": "love.WeldJoint"
                        }
                    ],
                    "desc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getFrequency)\n\n@*return* `freq` — The frequency in hertz.",
                    "finish": [
                        2800,
                        37
                    ],
                    "rawdesc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getFrequency)",
                    "returns": [
                        {
                            "desc": "The frequency in hertz.",
                            "name": "freq",
                            "rawdesc": "The frequency in hertz.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2800,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WeldJoint:getFrequency()\n  -> freq: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2800,
                    31
                ],
                "name": "getFrequency",
                "rawdesc": "\nReturns the frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getFrequency)",
                "start": [
                    2800,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getReferenceAngle)\n\n@*return* `angle` — The reference angle in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2809,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2809,
                                8
                            ],
                            "type": "self",
                            "view": "love.WeldJoint"
                        }
                    ],
                    "desc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getReferenceAngle)\n\n@*return* `angle` — The reference angle in radians.",
                    "finish": [
                        2809,
                        42
                    ],
                    "rawdesc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getReferenceAngle)",
                    "returns": [
                        {
                            "desc": "The reference angle in radians.",
                            "name": "angle",
                            "rawdesc": "The reference angle in radians.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2809,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WeldJoint:getReferenceAngle()\n  -> angle: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2809,
                    36
                ],
                "name": "getReferenceAngle",
                "rawdesc": "\nGets the reference angle.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:getReferenceAngle)",
                "start": [
                    2809,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setDampingRatio)\n\n@*param* `ratio` — The new damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2818,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2818,
                                8
                            ],
                            "type": "self",
                            "view": "love.WeldJoint"
                        },
                        {
                            "desc": "The new damping ratio.",
                            "finish": [
                                2818,
                                40
                            ],
                            "name": "ratio",
                            "rawdesc": "The new damping ratio.",
                            "start": [
                                2818,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setDampingRatio)\n\n@*param* `ratio` — The new damping ratio.",
                    "finish": [
                        2818,
                        45
                    ],
                    "rawdesc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setDampingRatio)",
                    "start": [
                        2818,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WeldJoint:setDampingRatio(ratio: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2818,
                    34
                ],
                "name": "setDampingRatio",
                "rawdesc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setDampingRatio)",
                "start": [
                    2818,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setFrequency)\n\n@*param* `freq` — The new frequency in hertz.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2827,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA WeldJoint essentially glues two bodies together.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2827,
                                8
                            ],
                            "type": "self",
                            "view": "love.WeldJoint"
                        },
                        {
                            "desc": "The new frequency in hertz.",
                            "finish": [
                                2827,
                                36
                            ],
                            "name": "freq",
                            "rawdesc": "The new frequency in hertz.",
                            "start": [
                                2827,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setFrequency)\n\n@*param* `freq` — The new frequency in hertz.",
                    "finish": [
                        2827,
                        41
                    ],
                    "rawdesc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setFrequency)",
                    "start": [
                        2827,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WeldJoint:setFrequency(freq: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2827,
                    31
                ],
                "name": "setFrequency",
                "rawdesc": "\nSets a new frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WeldJoint:setFrequency)",
                "start": [
                    2827,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.WeldJoint",
        "type": "type",
        "view": "love.WeldJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "finish": [
                            2835,
                            37
                        ],
                        "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                        "start": [
                            2835,
                            27
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Joint"
                    },
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2835,
                            50
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2835,
                            39
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2835,
                    50
                ],
                "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2835,
                    10
                ],
                "type": "doc.class",
                "view": "love.WheelJoint",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1925,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1925,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "finish": [
                        1925,
                        28
                    ],
                    "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                    "start": [
                        1925,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1925,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nExplicitly destroys the Joint. An error will occur if you attempt to use the object after calling this function.\n\nIn 0.7.2, when you don't have time to wait for garbage collection, this function\n\nmay be used to free the object immediately.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:destroy)",
                "start": [
                    1925,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1937,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)\n\n@*return* `x1` — The x-component of the anchor on Body 1.\n\n@*return* `y1` — The y-component of the anchor on Body 1.\n\n@*return* `x2` — The x-component of the anchor on Body 2.\n\n@*return* `y2` — The y-component of the anchor on Body 2.",
                    "finish": [
                        1937,
                        31
                    ],
                    "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                    "returns": [
                        {
                            "desc": "The x-component of the anchor on Body 1.",
                            "name": "x1",
                            "rawdesc": "The x-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 1.",
                            "name": "y1",
                            "rawdesc": "The y-component of the anchor on Body 1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-component of the anchor on Body 2.",
                            "name": "x2",
                            "rawdesc": "The x-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the anchor on Body 2.",
                            "name": "y2",
                            "rawdesc": "The y-component of the anchor on Body 2.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getAnchors()\n  -> x1: number\n  2. y1: number\n  3. x2: number\n  4. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1937,
                    25
                ],
                "name": "getAnchors",
                "rawdesc": "\nGet the anchor points of the joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getAnchors)",
                "start": [
                    1937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the world-space axis vector of the Wheel Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getAxis)\n\n@*return* `x` — The x-axis coordinate of the world-space axis vector.\n\n@*return* `y` — The y-axis coordinate of the world-space axis vector.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2846,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2846,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nGets the world-space axis vector of the Wheel Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getAxis)\n\n@*return* `x` — The x-axis coordinate of the world-space axis vector.\n\n@*return* `y` — The y-axis coordinate of the world-space axis vector.",
                    "finish": [
                        2846,
                        33
                    ],
                    "rawdesc": "\nGets the world-space axis vector of the Wheel Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getAxis)",
                    "returns": [
                        {
                            "desc": "The x-axis coordinate of the world-space axis vector.",
                            "name": "x",
                            "rawdesc": "The x-axis coordinate of the world-space axis vector.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-axis coordinate of the world-space axis vector.",
                            "name": "y",
                            "rawdesc": "The y-axis coordinate of the world-space axis vector.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2846,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getAxis()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2846,
                    27
                ],
                "name": "getAxis",
                "rawdesc": "\nGets the world-space axis vector of the Wheel Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getAxis)",
                "start": [
                    2846,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1947,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1947,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)\n\n@*return* `bodyA` — The first Body.\n\n@*return* `bodyB` — The second Body.",
                    "finish": [
                        1947,
                        30
                    ],
                    "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                    "returns": [
                        {
                            "desc": "The first Body.",
                            "name": "bodyA",
                            "rawdesc": "The first Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second Body.",
                            "name": "bodyB",
                            "rawdesc": "The second Body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        1947,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getBodies()\n  -> bodyA: love.Body\n  2. bodyB: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1947,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nGets the bodies that the Joint is attached to.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getBodies)",
                "start": [
                    1947,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1956,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1956,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)\n\n@*return* `c` — True if they collide, false otherwise.",
                    "finish": [
                        1956,
                        40
                    ],
                    "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                    "returns": [
                        {
                            "desc": "True if they collide, false otherwise.",
                            "name": "c",
                            "rawdesc": "True if they collide, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        1956,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getCollideConnected()\n  -> c: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1956,
                    34
                ],
                "name": "getCollideConnected",
                "rawdesc": "\nGets whether the connected Bodies collide.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getCollideConnected)",
                "start": [
                    1956,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current joint translation speed.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointSpeed)\n\n@*return* `speed` — The translation speed of the joint in meters per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2855,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2855,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nReturns the current joint translation speed.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointSpeed)\n\n@*return* `speed` — The translation speed of the joint in meters per second.",
                    "finish": [
                        2855,
                        39
                    ],
                    "rawdesc": "\nReturns the current joint translation speed.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointSpeed)",
                    "returns": [
                        {
                            "desc": "The translation speed of the joint in meters per second.",
                            "name": "speed",
                            "rawdesc": "The translation speed of the joint in meters per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2855,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getJointSpeed()\n  -> speed: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2855,
                    33
                ],
                "name": "getJointSpeed",
                "rawdesc": "\nReturns the current joint translation speed.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointSpeed)",
                "start": [
                    2855,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointTranslation)\n\n@*return* `position` — The translation of the joint in meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2864,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2864,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nReturns the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointTranslation)\n\n@*return* `position` — The translation of the joint in meters.",
                    "finish": [
                        2864,
                        45
                    ],
                    "rawdesc": "\nReturns the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointTranslation)",
                    "returns": [
                        {
                            "desc": "The translation of the joint in meters.",
                            "name": "position",
                            "rawdesc": "The translation of the joint in meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2864,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getJointTranslation()\n  -> position: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2864,
                    39
                ],
                "name": "getJointTranslation",
                "rawdesc": "\nReturns the current joint translation.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getJointTranslation)",
                "start": [
                    2864,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMaxMotorTorque)\n\n@*return* `maxTorque` — The maximum torque of the joint motor in newton meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2873,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2873,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nReturns the maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMaxMotorTorque)\n\n@*return* `maxTorque` — The maximum torque of the joint motor in newton meters.",
                    "finish": [
                        2873,
                        43
                    ],
                    "rawdesc": "\nReturns the maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMaxMotorTorque)",
                    "returns": [
                        {
                            "desc": "The maximum torque of the joint motor in newton meters.",
                            "name": "maxTorque",
                            "rawdesc": "The maximum torque of the joint motor in newton meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2873,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getMaxMotorTorque()\n  -> maxTorque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2873,
                    37
                ],
                "name": "getMaxMotorTorque",
                "rawdesc": "\nReturns the maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMaxMotorTorque)",
                "start": [
                    2873,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the speed of the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorSpeed)\n\n@*return* `speed` — The speed of the joint motor in radians per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2882,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2882,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nReturns the speed of the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorSpeed)\n\n@*return* `speed` — The speed of the joint motor in radians per second.",
                    "finish": [
                        2882,
                        39
                    ],
                    "rawdesc": "\nReturns the speed of the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorSpeed)",
                    "returns": [
                        {
                            "desc": "The speed of the joint motor in radians per second.",
                            "name": "speed",
                            "rawdesc": "The speed of the joint motor in radians per second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2882,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getMotorSpeed()\n  -> speed: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2882,
                    33
                ],
                "name": "getMotorSpeed",
                "rawdesc": "\nReturns the speed of the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorSpeed)",
                "start": [
                    2882,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current torque on the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The torque on the motor in newton meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2892,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2892,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                2892,
                                40
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                2892,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the current torque on the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The torque on the motor in newton meters.",
                    "finish": [
                        2892,
                        45
                    ],
                    "rawdesc": "\nReturns the current torque on the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorTorque)",
                    "returns": [
                        {
                            "desc": "The torque on the motor in newton meters.",
                            "name": "torque",
                            "rawdesc": "The torque on the motor in newton meters.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2892,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getMotorTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2892,
                    34
                ],
                "name": "getMotorTorque",
                "rawdesc": "\nReturns the current torque on the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getMotorTorque)",
                "start": [
                    2892,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1967,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1967,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1967,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1967,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)\n\n@*param* `x` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `x` — The x-component of the force.\n\n@*return* `y` — The y-component of the force.",
                    "finish": [
                        1967,
                        38
                    ],
                    "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                    "returns": [
                        {
                            "desc": "The x-component of the force.",
                            "name": "x",
                            "rawdesc": "The x-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the force.",
                            "name": "y",
                            "rawdesc": "The y-component of the force.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1967,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionForce(x: number)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1967,
                    31
                ],
                "name": "getReactionForce",
                "rawdesc": "\nReturns the reaction force in newtons on the second body\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionForce)",
                "start": [
                    1967,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1977,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1977,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "finish": [
                                1977,
                                38
                            ],
                            "name": "invdt",
                            "rawdesc": "How long the force applies. Usually the inverse time step or 1/dt.",
                            "start": [
                                1977,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)\n\n@*param* `invdt` — How long the force applies. Usually the inverse time step or 1/dt.\n\n@*return* `torque` — The reaction torque on the second body.",
                    "finish": [
                        1977,
                        43
                    ],
                    "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                    "returns": [
                        {
                            "desc": "The reaction torque on the second body.",
                            "name": "torque",
                            "rawdesc": "The reaction torque on the second body.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1977,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getReactionTorque(invdt: number)\n  -> torque: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1977,
                    32
                ],
                "name": "getReactionTorque",
                "rawdesc": "\nReturns the reaction torque on the second body.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getReactionTorque)",
                "start": [
                    1977,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringDampingRatio)\n\n@*return* `ratio` — The damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2901,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2901,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringDampingRatio)\n\n@*return* `ratio` — The damping ratio.",
                    "finish": [
                        2901,
                        47
                    ],
                    "rawdesc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringDampingRatio)",
                    "returns": [
                        {
                            "desc": "The damping ratio.",
                            "name": "ratio",
                            "rawdesc": "The damping ratio.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2901,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getSpringDampingRatio()\n  -> ratio: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2901,
                    41
                ],
                "name": "getSpringDampingRatio",
                "rawdesc": "\nReturns the damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringDampingRatio)",
                "start": [
                    2901,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringFrequency)\n\n@*return* `freq` — The frequency in hertz.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2910,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2910,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nReturns the spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringFrequency)\n\n@*return* `freq` — The frequency in hertz.",
                    "finish": [
                        2910,
                        44
                    ],
                    "rawdesc": "\nReturns the spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringFrequency)",
                    "returns": [
                        {
                            "desc": "The frequency in hertz.",
                            "name": "freq",
                            "rawdesc": "The frequency in hertz.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        2910,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:getSpringFrequency()\n  -> freq: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2910,
                    38
                ],
                "name": "getSpringFrequency",
                "rawdesc": "\nReturns the spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:getSpringFrequency)",
                "start": [
                    2910,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1986,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1986,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n@*return* `type` — A string with the name of the Joint type.\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "finish": [
                        1986,
                        28
                    ],
                    "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                    "returns": [
                        {
                            "desc": "A string with the name of the Joint type.",
                            "name": "type",
                            "rawdesc": "A string with the name of the Joint type.",
                            "type": "function.return",
                            "view": "\"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                        }
                    ],
                    "start": [
                        1986,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getType()\n  -> type: \"distance\"|\"friction\"|\"gear\"|\"mouse\"|\"prismatic\"...(+4)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1986,
                    22
                ],
                "name": "getType",
                "rawdesc": "\nGets a string representing the type.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getType)\n\n\n```lua\n-- \n-- Different types of joints.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JointType)\n-- \ntype:\n    | \"distance\" -- A DistanceJoint.\n    | \"friction\" -- A FrictionJoint.\n    | \"gear\" -- A GearJoint.\n    | \"mouse\" -- A MouseJoint.\n    | \"prismatic\" -- A PrismaticJoint.\n    | \"pulley\" -- A PulleyJoint.\n    | \"revolute\" -- A RevoluteJoint.\n    | \"rope\" -- A RopeJoint.\n    | \"weld\" -- A WeldJoint.\n```",
                "start": [
                    1986,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                1995,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                1995,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)\n\n@*return* `value` — The Lua value associated with the Joint.",
                    "finish": [
                        1995,
                        32
                    ],
                    "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                    "returns": [
                        {
                            "desc": "The Lua value associated with the Joint.",
                            "name": "value",
                            "rawdesc": "The Lua value associated with the Joint.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        1995,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:getUserData()\n  -> value: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    1995,
                    26
                ],
                "name": "getUserData",
                "rawdesc": "\nReturns the Lua value associated with this Joint.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:getUserData)",
                "start": [
                    1995,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2004,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2004,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        }
                    ],
                    "desc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)\n\n@*return* `destroyed` — Whether the Joint is destroyed.",
                    "finish": [
                        2004,
                        32
                    ],
                    "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the Joint is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the Joint is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2004,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2004,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the Joint is destroyed. Destroyed joints cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:isDestroyed)",
                "start": [
                    2004,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the joint motor is running.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:isMotorEnabled)\n\n@*return* `on` — The status of the joint motor.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2919,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2919,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "desc": "\nChecks if the joint motor is running.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:isMotorEnabled)\n\n@*return* `on` — The status of the joint motor.",
                    "finish": [
                        2919,
                        40
                    ],
                    "rawdesc": "\nChecks if the joint motor is running.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:isMotorEnabled)",
                    "returns": [
                        {
                            "desc": "The status of the joint motor.",
                            "name": "on",
                            "rawdesc": "The status of the joint motor.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        2919,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:isMotorEnabled()\n  -> on: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2919,
                    34
                ],
                "name": "isMotorEnabled",
                "rawdesc": "\nChecks if the joint motor is running.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:isMotorEnabled)",
                "start": [
                    2919,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMaxMotorTorque)\n\n@*param* `maxTorque` — The new maximum torque for the joint motor in newton meters.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2928,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2928,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        },
                        {
                            "desc": "The new maximum torque for the joint motor in newton meters.",
                            "finish": [
                                2928,
                                47
                            ],
                            "name": "maxTorque",
                            "rawdesc": "The new maximum torque for the joint motor in newton meters.",
                            "start": [
                                2928,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMaxMotorTorque)\n\n@*param* `maxTorque` — The new maximum torque for the joint motor in newton meters.",
                    "finish": [
                        2928,
                        52
                    ],
                    "rawdesc": "\nSets a new maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMaxMotorTorque)",
                    "start": [
                        2928,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:setMaxMotorTorque(maxTorque: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2928,
                    37
                ],
                "name": "setMaxMotorTorque",
                "rawdesc": "\nSets a new maximum motor torque.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMaxMotorTorque)",
                "start": [
                    2928,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStarts and stops the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorEnabled)\n\n@*param* `enable` — True turns the motor on and false turns it off.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2937,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2937,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        },
                        {
                            "desc": "True turns the motor on and false turns it off.",
                            "finish": [
                                2937,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "True turns the motor on and false turns it off.",
                            "start": [
                                2937,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nStarts and stops the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorEnabled)\n\n@*param* `enable` — True turns the motor on and false turns it off.",
                    "finish": [
                        2937,
                        47
                    ],
                    "rawdesc": "\nStarts and stops the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorEnabled)",
                    "start": [
                        2937,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:setMotorEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2937,
                    35
                ],
                "name": "setMotorEnabled",
                "rawdesc": "\nStarts and stops the joint motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorEnabled)",
                "start": [
                    2937,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new speed for the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorSpeed)\n\n@*param* `speed` — The new speed for the joint motor in radians per second.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2946,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2946,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        },
                        {
                            "desc": "The new speed for the joint motor in radians per second.",
                            "finish": [
                                2946,
                                39
                            ],
                            "name": "speed",
                            "rawdesc": "The new speed for the joint motor in radians per second.",
                            "start": [
                                2946,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new speed for the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorSpeed)\n\n@*param* `speed` — The new speed for the joint motor in radians per second.",
                    "finish": [
                        2946,
                        44
                    ],
                    "rawdesc": "\nSets a new speed for the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorSpeed)",
                    "start": [
                        2946,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:setMotorSpeed(speed: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2946,
                    33
                ],
                "name": "setMotorSpeed",
                "rawdesc": "\nSets a new speed for the motor.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setMotorSpeed)",
                "start": [
                    2946,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringDampingRatio)\n\n@*param* `ratio` — The new damping ratio.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2955,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2955,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        },
                        {
                            "desc": "The new damping ratio.",
                            "finish": [
                                2955,
                                47
                            ],
                            "name": "ratio",
                            "rawdesc": "The new damping ratio.",
                            "start": [
                                2955,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringDampingRatio)\n\n@*param* `ratio` — The new damping ratio.",
                    "finish": [
                        2955,
                        52
                    ],
                    "rawdesc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringDampingRatio)",
                    "start": [
                        2955,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:setSpringDampingRatio(ratio: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2955,
                    41
                ],
                "name": "setSpringDampingRatio",
                "rawdesc": "\nSets a new damping ratio.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringDampingRatio)",
                "start": [
                    2955,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a new spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringFrequency)\n\n@*param* `freq` — The new frequency in hertz.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2964,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nRestricts a point on the second body to a line on the first body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2964,
                                8
                            ],
                            "type": "self",
                            "view": "love.WheelJoint"
                        },
                        {
                            "desc": "The new frequency in hertz.",
                            "finish": [
                                2964,
                                43
                            ],
                            "name": "freq",
                            "rawdesc": "The new frequency in hertz.",
                            "start": [
                                2964,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a new spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringFrequency)\n\n@*param* `freq` — The new frequency in hertz.",
                    "finish": [
                        2964,
                        48
                    ],
                    "rawdesc": "\nSets a new spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringFrequency)",
                    "start": [
                        2964,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.WheelJoint:setSpringFrequency(freq: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2964,
                    38
                ],
                "name": "setSpringFrequency",
                "rawdesc": "\nSets a new spring frequency.\n\n\n[Open in Browser](https://love2d.org/wiki/WheelJoint:setSpringFrequency)",
                "start": [
                    2964,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2015,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nAttach multiple bodies together to interact in unique ways.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2015,
                                8
                            ],
                            "type": "self",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The Lua value to associate with the Joint.",
                            "finish": [
                                2015,
                                32
                            ],
                            "name": "value",
                            "rawdesc": "The Lua value to associate with the Joint.",
                            "start": [
                                2015,
                                27
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)\n\n@*param* `value` — The Lua value to associate with the Joint.",
                    "finish": [
                        2015,
                        37
                    ],
                    "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                    "start": [
                        2015,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Joint:setUserData(value: any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2015,
                    26
                ],
                "name": "setUserData",
                "rawdesc": "\nAssociates a Lua value with the Joint.\n\nTo delete the reference, explicitly pass nil.\n\n\n[Open in Browser](https://love2d.org/wiki/Joint:setUserData)",
                "start": [
                    2015,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.WheelJoint",
        "type": "type",
        "view": "love.WheelJoint"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": [
                    {
                        "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "finish": [
                            2972,
                            33
                        ],
                        "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                        "start": [
                            2972,
                            22
                        ],
                        "type": "doc.extends.name",
                        "view": "love.Object"
                    }
                ],
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2972,
                    33
                ],
                "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    2972,
                    10
                ],
                "type": "doc.class",
                "view": "love.World",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the world, taking all bodies, joints, fixtures and their shapes with it.\n\nAn error will occur if you attempt to use any of the destroyed objects after calling this function.\n\n\n[Open in Browser](https://love2d.org/wiki/World:destroy)",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2983,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2983,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nDestroys the world, taking all bodies, joints, fixtures and their shapes with it.\n\nAn error will occur if you attempt to use any of the destroyed objects after calling this function.\n\n\n[Open in Browser](https://love2d.org/wiki/World:destroy)",
                    "finish": [
                        2983,
                        28
                    ],
                    "rawdesc": "\nDestroys the world, taking all bodies, joints, fixtures and their shapes with it.\n\nAn error will occur if you attempt to use any of the destroyed objects after calling this function.\n\n\n[Open in Browser](https://love2d.org/wiki/World:destroy)",
                    "start": [
                        2983,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:destroy()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2983,
                    22
                ],
                "name": "destroy",
                "rawdesc": "\nDestroys the world, taking all bodies, joints, fixtures and their shapes with it.\n\nAn error will occur if you attempt to use any of the destroyed objects after calling this function.\n\n\n[Open in Browser](https://love2d.org/wiki/World:destroy)",
                "start": [
                    2983,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with all bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodies)\n\n@*return* `bodies` — A sequence with all bodies.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                2992,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                2992,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns a table with all bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodies)\n\n@*return* `bodies` — A sequence with all bodies.",
                    "finish": [
                        2992,
                        30
                    ],
                    "rawdesc": "\nReturns a table with all bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodies)",
                    "returns": [
                        {
                            "desc": "A sequence with all bodies.",
                            "name": "bodies",
                            "rawdesc": "A sequence with all bodies.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        2992,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getBodies()\n  -> bodies: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    2992,
                    24
                ],
                "name": "getBodies",
                "rawdesc": "\nReturns a table with all bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodies)",
                "start": [
                    2992,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of bodies in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodyCount)\n\n@*return* `n` — The number of bodies in the world.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3001,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3001,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns the number of bodies in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodyCount)\n\n@*return* `n` — The number of bodies in the world.",
                    "finish": [
                        3001,
                        33
                    ],
                    "rawdesc": "\nReturns the number of bodies in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodyCount)",
                    "returns": [
                        {
                            "desc": "The number of bodies in the world.",
                            "name": "n",
                            "rawdesc": "The number of bodies in the world.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3001,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getBodyCount()\n  -> n: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3001,
                    27
                ],
                "name": "getBodyCount",
                "rawdesc": "\nReturns the number of bodies in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getBodyCount)",
                "start": [
                    3001,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns functions for the callbacks during the world update.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getCallbacks)\n\n@*return* `beginContact` — Gets called when two fixtures begin to overlap.\n\n@*return* `endContact` — Gets called when two fixtures cease to overlap.\n\n@*return* `preSolve` — Gets called before a collision gets resolved.\n\n@*return* `postSolve` — Gets called after the collision has been resolved.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3013,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3013,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns functions for the callbacks during the world update.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getCallbacks)\n\n@*return* `beginContact` — Gets called when two fixtures begin to overlap.\n\n@*return* `endContact` — Gets called when two fixtures cease to overlap.\n\n@*return* `preSolve` — Gets called before a collision gets resolved.\n\n@*return* `postSolve` — Gets called after the collision has been resolved.",
                    "finish": [
                        3013,
                        33
                    ],
                    "rawdesc": "\nReturns functions for the callbacks during the world update.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getCallbacks)",
                    "returns": [
                        {
                            "desc": "Gets called when two fixtures begin to overlap.",
                            "name": "beginContact",
                            "rawdesc": "Gets called when two fixtures begin to overlap.",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "desc": "Gets called when two fixtures cease to overlap.",
                            "name": "endContact",
                            "rawdesc": "Gets called when two fixtures cease to overlap.",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "desc": "Gets called before a collision gets resolved.",
                            "name": "preSolve",
                            "rawdesc": "Gets called before a collision gets resolved.",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "desc": "Gets called after the collision has been resolved.",
                            "name": "postSolve",
                            "rawdesc": "Gets called after the collision has been resolved.",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        3013,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getCallbacks()\n  -> beginContact: function\n  2. endContact: function\n  3. preSolve: function\n  4. postSolve: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3013,
                    27
                ],
                "name": "getCallbacks",
                "rawdesc": "\nReturns functions for the callbacks during the world update.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getCallbacks)",
                "start": [
                    3013,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of contacts in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactCount)\n\n@*return* `n` — The number of contacts in the world.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3022,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3022,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns the number of contacts in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactCount)\n\n@*return* `n` — The number of contacts in the world.",
                    "finish": [
                        3022,
                        36
                    ],
                    "rawdesc": "\nReturns the number of contacts in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactCount)",
                    "returns": [
                        {
                            "desc": "The number of contacts in the world.",
                            "name": "n",
                            "rawdesc": "The number of contacts in the world.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3022,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getContactCount()\n  -> n: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3022,
                    30
                ],
                "name": "getContactCount",
                "rawdesc": "\nReturns the number of contacts in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactCount)",
                "start": [
                    3022,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the function for collision filtering.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactFilter)\n\n@*return* `contactFilter` — The function that handles the contact filtering.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3031,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3031,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns the function for collision filtering.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactFilter)\n\n@*return* `contactFilter` — The function that handles the contact filtering.",
                    "finish": [
                        3031,
                        37
                    ],
                    "rawdesc": "\nReturns the function for collision filtering.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactFilter)",
                    "returns": [
                        {
                            "desc": "The function that handles the contact filtering.",
                            "name": "contactFilter",
                            "rawdesc": "The function that handles the contact filtering.",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        3031,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getContactFilter()\n  -> contactFilter: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3031,
                    31
                ],
                "name": "getContactFilter",
                "rawdesc": "\nReturns the function for collision filtering.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContactFilter)",
                "start": [
                    3031,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with all Contacts.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContacts)\n\n@*return* `contacts` — A sequence with all Contacts.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3040,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3040,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns a table with all Contacts.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContacts)\n\n@*return* `contacts` — A sequence with all Contacts.",
                    "finish": [
                        3040,
                        32
                    ],
                    "rawdesc": "\nReturns a table with all Contacts.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContacts)",
                    "returns": [
                        {
                            "desc": "A sequence with all Contacts.",
                            "name": "contacts",
                            "rawdesc": "A sequence with all Contacts.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        3040,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getContacts()\n  -> contacts: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3040,
                    26
                ],
                "name": "getContacts",
                "rawdesc": "\nReturns a table with all Contacts.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getContacts)",
                "start": [
                    3040,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getGravity)\n\n@*return* `x` — The x component of gravity.\n\n@*return* `y` — The y component of gravity.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3050,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3050,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nGet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getGravity)\n\n@*return* `x` — The x component of gravity.\n\n@*return* `y` — The y component of gravity.",
                    "finish": [
                        3050,
                        31
                    ],
                    "rawdesc": "\nGet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getGravity)",
                    "returns": [
                        {
                            "desc": "The x component of gravity.",
                            "name": "x",
                            "rawdesc": "The x component of gravity.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of gravity.",
                            "name": "y",
                            "rawdesc": "The y component of gravity.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3050,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getGravity()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3050,
                    25
                ],
                "name": "getGravity",
                "rawdesc": "\nGet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getGravity)",
                "start": [
                    3050,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the number of joints in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJointCount)\n\n@*return* `n` — The number of joints in the world.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3059,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3059,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns the number of joints in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJointCount)\n\n@*return* `n` — The number of joints in the world.",
                    "finish": [
                        3059,
                        34
                    ],
                    "rawdesc": "\nReturns the number of joints in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJointCount)",
                    "returns": [
                        {
                            "desc": "The number of joints in the world.",
                            "name": "n",
                            "rawdesc": "The number of joints in the world.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        3059,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getJointCount()\n  -> n: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3059,
                    28
                ],
                "name": "getJointCount",
                "rawdesc": "\nReturns the number of joints in the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJointCount)",
                "start": [
                    3059,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with all joints.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJoints)\n\n@*return* `joints` — A sequence with all joints.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3068,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3068,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns a table with all joints.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJoints)\n\n@*return* `joints` — A sequence with all joints.",
                    "finish": [
                        3068,
                        30
                    ],
                    "rawdesc": "\nReturns a table with all joints.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJoints)",
                    "returns": [
                        {
                            "desc": "A sequence with all joints.",
                            "name": "joints",
                            "rawdesc": "A sequence with all joints.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        3068,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:getJoints()\n  -> joints: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3068,
                    24
                ],
                "name": "getJoints",
                "rawdesc": "\nReturns a table with all joints.\n\n\n[Open in Browser](https://love2d.org/wiki/World:getJoints)",
                "start": [
                    3068,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the World is destroyed. Destroyed worlds cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isDestroyed)\n\n@*return* `destroyed` — Whether the World is destroyed.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3077,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3077,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nGets whether the World is destroyed. Destroyed worlds cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isDestroyed)\n\n@*return* `destroyed` — Whether the World is destroyed.",
                    "finish": [
                        3077,
                        32
                    ],
                    "rawdesc": "\nGets whether the World is destroyed. Destroyed worlds cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isDestroyed)",
                    "returns": [
                        {
                            "desc": "Whether the World is destroyed.",
                            "name": "destroyed",
                            "rawdesc": "Whether the World is destroyed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3077,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:isDestroyed()\n  -> destroyed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3077,
                    26
                ],
                "name": "isDestroyed",
                "rawdesc": "\nGets whether the World is destroyed. Destroyed worlds cannot be used.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isDestroyed)",
                "start": [
                    3077,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns if the world is updating its state.\n\nThis will return true inside the callbacks from World:setCallbacks.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isLocked)\n\n@*return* `locked` — Will be true if the world is in the process of updating its state.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3088,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3088,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nReturns if the world is updating its state.\n\nThis will return true inside the callbacks from World:setCallbacks.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isLocked)\n\n@*return* `locked` — Will be true if the world is in the process of updating its state.",
                    "finish": [
                        3088,
                        29
                    ],
                    "rawdesc": "\nReturns if the world is updating its state.\n\nThis will return true inside the callbacks from World:setCallbacks.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isLocked)",
                    "returns": [
                        {
                            "desc": "Will be true if the world is in the process of updating its state.",
                            "name": "locked",
                            "rawdesc": "Will be true if the world is in the process of updating its state.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3088,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:isLocked()\n  -> locked: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3088,
                    23
                ],
                "name": "isLocked",
                "rawdesc": "\nReturns if the world is updating its state.\n\nThis will return true inside the callbacks from World:setCallbacks.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isLocked)",
                "start": [
                    3088,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isSleepingAllowed)\n\n@*return* `allow` — True if bodies in the world are allowed to sleep, or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3097,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3097,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        }
                    ],
                    "desc": "\nGets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isSleepingAllowed)\n\n@*return* `allow` — True if bodies in the world are allowed to sleep, or false if not.",
                    "finish": [
                        3097,
                        38
                    ],
                    "rawdesc": "\nGets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isSleepingAllowed)",
                    "returns": [
                        {
                            "desc": "True if bodies in the world are allowed to sleep, or false if not.",
                            "name": "allow",
                            "rawdesc": "True if bodies in the world are allowed to sleep, or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        3097,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:isSleepingAllowed()\n  -> allow: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3097,
                    32
                ],
                "name": "isSleepingAllowed",
                "rawdesc": "\nGets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:isSleepingAllowed)",
                "start": [
                    3097,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCalls a function for each fixture inside the specified area by searching for any overlapping bounding box (Fixture:getBoundingBox).\n\n\n[Open in Browser](https://love2d.org/wiki/World:queryBoundingBox)\n\n@*param* `topLeftX` — The x position of the top-left point.\n\n@*param* `topLeftY` — The y position of the top-left point.\n\n@*param* `bottomRightX` — The x position of the bottom-right point.\n\n@*param* `bottomRightY` — The y position of the bottom-right point.\n\n@*param* `callback` — This function gets passed one argument, the fixture, and should return a boolean. The search will continue if it is true or stop if it is false.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3110,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3110,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "The x position of the top-left point.",
                            "finish": [
                                3110,
                                40
                            ],
                            "name": "topLeftX",
                            "rawdesc": "The x position of the top-left point.",
                            "start": [
                                3110,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the top-left point.",
                            "finish": [
                                3110,
                                50
                            ],
                            "name": "topLeftY",
                            "rawdesc": "The y position of the top-left point.",
                            "start": [
                                3110,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the bottom-right point.",
                            "finish": [
                                3110,
                                64
                            ],
                            "name": "bottomRightX",
                            "rawdesc": "The x position of the bottom-right point.",
                            "start": [
                                3110,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the bottom-right point.",
                            "finish": [
                                3110,
                                78
                            ],
                            "name": "bottomRightY",
                            "rawdesc": "The y position of the bottom-right point.",
                            "start": [
                                3110,
                                66
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "This function gets passed one argument, the fixture, and should return a boolean. The search will continue if it is true or stop if it is false.",
                            "finish": [
                                3110,
                                88
                            ],
                            "name": "callback",
                            "rawdesc": "This function gets passed one argument, the fixture, and should return a boolean. The search will continue if it is true or stop if it is false.",
                            "start": [
                                3110,
                                80
                            ],
                            "type": "local",
                            "view": "function"
                        }
                    ],
                    "desc": "\nCalls a function for each fixture inside the specified area by searching for any overlapping bounding box (Fixture:getBoundingBox).\n\n\n[Open in Browser](https://love2d.org/wiki/World:queryBoundingBox)\n\n@*param* `topLeftX` — The x position of the top-left point.\n\n@*param* `topLeftY` — The y position of the top-left point.\n\n@*param* `bottomRightX` — The x position of the bottom-right point.\n\n@*param* `bottomRightY` — The y position of the bottom-right point.\n\n@*param* `callback` — This function gets passed one argument, the fixture, and should return a boolean. The search will continue if it is true or stop if it is false.",
                    "finish": [
                        3110,
                        93
                    ],
                    "rawdesc": "\nCalls a function for each fixture inside the specified area by searching for any overlapping bounding box (Fixture:getBoundingBox).\n\n\n[Open in Browser](https://love2d.org/wiki/World:queryBoundingBox)",
                    "start": [
                        3110,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:queryBoundingBox(topLeftX: number, topLeftY: number, bottomRightX: number, bottomRightY: number, callback: function)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3110,
                    31
                ],
                "name": "queryBoundingBox",
                "rawdesc": "\nCalls a function for each fixture inside the specified area by searching for any overlapping bounding box (Fixture:getBoundingBox).\n\n\n[Open in Browser](https://love2d.org/wiki/World:queryBoundingBox)",
                "start": [
                    3110,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCasts a ray and calls a function for each fixtures it intersects.\n\n\n[Open in Browser](https://love2d.org/wiki/World:rayCast)\n\n@*param* `x1` — The x position of the starting point of the ray.\n\n@*param* `y1` — The x position of the starting point of the ray.\n\n@*param* `x2` — The x position of the end point of the ray.\n\n@*param* `y2` — The x value of the surface normal vector of the shape edge.\n\n@*param* `callback` — A function called for each fixture intersected by the ray. The function gets six arguments and should return a number as a control value. The intersection points fed into the function will be in an arbitrary order. If you wish to find the closest point of intersection, you'll need to do that yourself within the function. The easiest way to do that is by using the fraction value.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3123,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3123,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "The x position of the starting point of the ray.",
                            "finish": [
                                3123,
                                25
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the starting point of the ray.",
                            "start": [
                                3123,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the starting point of the ray.",
                            "finish": [
                                3123,
                                29
                            ],
                            "name": "y1",
                            "rawdesc": "The x position of the starting point of the ray.",
                            "start": [
                                3123,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the end point of the ray.",
                            "finish": [
                                3123,
                                33
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the end point of the ray.",
                            "start": [
                                3123,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x value of the surface normal vector of the shape edge.",
                            "finish": [
                                3123,
                                37
                            ],
                            "name": "y2",
                            "rawdesc": "The x value of the surface normal vector of the shape edge.",
                            "start": [
                                3123,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "A function called for each fixture intersected by the ray. The function gets six arguments and should return a number as a control value. The intersection points fed into the function will be in an arbitrary order. If you wish to find the closest point of intersection, you'll need to do that yourself within the function. The easiest way to do that is by using the fraction value.",
                            "finish": [
                                3123,
                                47
                            ],
                            "name": "callback",
                            "rawdesc": "A function called for each fixture intersected by the ray. The function gets six arguments and should return a number as a control value. The intersection points fed into the function will be in an arbitrary order. If you wish to find the closest point of intersection, you'll need to do that yourself within the function. The easiest way to do that is by using the fraction value.",
                            "start": [
                                3123,
                                39
                            ],
                            "type": "local",
                            "view": "function"
                        }
                    ],
                    "desc": "\nCasts a ray and calls a function for each fixtures it intersects.\n\n\n[Open in Browser](https://love2d.org/wiki/World:rayCast)\n\n@*param* `x1` — The x position of the starting point of the ray.\n\n@*param* `y1` — The x position of the starting point of the ray.\n\n@*param* `x2` — The x position of the end point of the ray.\n\n@*param* `y2` — The x value of the surface normal vector of the shape edge.\n\n@*param* `callback` — A function called for each fixture intersected by the ray. The function gets six arguments and should return a number as a control value. The intersection points fed into the function will be in an arbitrary order. If you wish to find the closest point of intersection, you'll need to do that yourself within the function. The easiest way to do that is by using the fraction value.",
                    "finish": [
                        3123,
                        52
                    ],
                    "rawdesc": "\nCasts a ray and calls a function for each fixtures it intersects.\n\n\n[Open in Browser](https://love2d.org/wiki/World:rayCast)",
                    "start": [
                        3123,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:rayCast(x1: number, y1: number, x2: number, y2: number, callback: function)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3123,
                    22
                ],
                "name": "rayCast",
                "rawdesc": "\nCasts a ray and calls a function for each fixtures it intersects.\n\n\n[Open in Browser](https://love2d.org/wiki/World:rayCast)",
                "start": [
                    3123,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                128,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                128,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)\n\n@*return* `success` — True if the object was released by this call, false if it had been previously released.",
                    "finish": [
                        128,
                        29
                    ],
                    "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                    "returns": [
                        {
                            "desc": "True if the object was released by this call, false if it had been previously released.",
                            "name": "success",
                            "rawdesc": "True if the object was released by this call, false if it had been previously released.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:release()\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "release",
                "rawdesc": "\nDestroys the object's Lua reference. The object will be completely deleted if it's not referenced by any other LÖVE object or thread.\n\nThis method can be used to immediately clean up resources without waiting for Lua's garbage collector.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:release)",
                "start": [
                    128,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets functions for the collision callbacks during the world update.\n\nFour Lua functions can be given as arguments. The value nil removes a function.\n\nWhen called, each function will be passed three arguments. The first two arguments are the colliding fixtures and the third argument is the Contact between them. The postSolve callback additionally gets the normal and tangent impulse for each contact point. See notes.\n\nIf you are interested to know when exactly each callback is called, consult a Box2d manual\n\n\n[Open in Browser](https://love2d.org/wiki/World:setCallbacks)\n\n@*param* `beginContact` — Gets called when two fixtures begin to overlap.\n\n@*param* `endContact` — Gets called when two fixtures cease to overlap. This will also be called outside of a world update, when colliding objects are destroyed.\n\n@*param* `preSolve` — Gets called before a collision gets resolved.\n\n@*param* `postSolve` — Gets called after the collision has been resolved.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3141,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3141,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "Gets called when two fixtures begin to overlap.",
                            "finish": [
                                3141,
                                40
                            ],
                            "name": "beginContact",
                            "rawdesc": "Gets called when two fixtures begin to overlap.",
                            "start": [
                                3141,
                                28
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "desc": "Gets called when two fixtures cease to overlap. This will also be called outside of a world update, when colliding objects are destroyed.",
                            "finish": [
                                3141,
                                52
                            ],
                            "name": "endContact",
                            "rawdesc": "Gets called when two fixtures cease to overlap. This will also be called outside of a world update, when colliding objects are destroyed.",
                            "start": [
                                3141,
                                42
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "desc": "Gets called before a collision gets resolved.",
                            "finish": [
                                3141,
                                62
                            ],
                            "name": "preSolve",
                            "rawdesc": "Gets called before a collision gets resolved.",
                            "start": [
                                3141,
                                54
                            ],
                            "type": "local",
                            "view": "function?"
                        },
                        {
                            "desc": "Gets called after the collision has been resolved.",
                            "finish": [
                                3141,
                                73
                            ],
                            "name": "postSolve",
                            "rawdesc": "Gets called after the collision has been resolved.",
                            "start": [
                                3141,
                                64
                            ],
                            "type": "local",
                            "view": "function?"
                        }
                    ],
                    "desc": "\nSets functions for the collision callbacks during the world update.\n\nFour Lua functions can be given as arguments. The value nil removes a function.\n\nWhen called, each function will be passed three arguments. The first two arguments are the colliding fixtures and the third argument is the Contact between them. The postSolve callback additionally gets the normal and tangent impulse for each contact point. See notes.\n\nIf you are interested to know when exactly each callback is called, consult a Box2d manual\n\n\n[Open in Browser](https://love2d.org/wiki/World:setCallbacks)\n\n@*param* `beginContact` — Gets called when two fixtures begin to overlap.\n\n@*param* `endContact` — Gets called when two fixtures cease to overlap. This will also be called outside of a world update, when colliding objects are destroyed.\n\n@*param* `preSolve` — Gets called before a collision gets resolved.\n\n@*param* `postSolve` — Gets called after the collision has been resolved.",
                    "finish": [
                        3141,
                        78
                    ],
                    "rawdesc": "\nSets functions for the collision callbacks during the world update.\n\nFour Lua functions can be given as arguments. The value nil removes a function.\n\nWhen called, each function will be passed three arguments. The first two arguments are the colliding fixtures and the third argument is the Contact between them. The postSolve callback additionally gets the normal and tangent impulse for each contact point. See notes.\n\nIf you are interested to know when exactly each callback is called, consult a Box2d manual\n\n\n[Open in Browser](https://love2d.org/wiki/World:setCallbacks)",
                    "start": [
                        3141,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:setCallbacks(beginContact: function, endContact: function, preSolve?: function, postSolve?: function)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3141,
                    27
                ],
                "name": "setCallbacks",
                "rawdesc": "\nSets functions for the collision callbacks during the world update.\n\nFour Lua functions can be given as arguments. The value nil removes a function.\n\nWhen called, each function will be passed three arguments. The first two arguments are the colliding fixtures and the third argument is the Contact between them. The postSolve callback additionally gets the normal and tangent impulse for each contact point. See notes.\n\nIf you are interested to know when exactly each callback is called, consult a Box2d manual\n\n\n[Open in Browser](https://love2d.org/wiki/World:setCallbacks)",
                "start": [
                    3141,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a function for collision filtering.\n\nIf the group and category filtering doesn't generate a collision decision, this function gets called with the two fixtures as arguments. The function should return a boolean value where true means the fixtures will collide and false means they will pass through each other.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setContactFilter)\n\n@*param* `filter` — The function handling the contact filtering.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3152,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3152,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "The function handling the contact filtering.",
                            "finish": [
                                3152,
                                38
                            ],
                            "name": "filter",
                            "rawdesc": "The function handling the contact filtering.",
                            "start": [
                                3152,
                                32
                            ],
                            "type": "local",
                            "view": "function"
                        }
                    ],
                    "desc": "\nSets a function for collision filtering.\n\nIf the group and category filtering doesn't generate a collision decision, this function gets called with the two fixtures as arguments. The function should return a boolean value where true means the fixtures will collide and false means they will pass through each other.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setContactFilter)\n\n@*param* `filter` — The function handling the contact filtering.",
                    "finish": [
                        3152,
                        43
                    ],
                    "rawdesc": "\nSets a function for collision filtering.\n\nIf the group and category filtering doesn't generate a collision decision, this function gets called with the two fixtures as arguments. The function should return a boolean value where true means the fixtures will collide and false means they will pass through each other.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setContactFilter)",
                    "start": [
                        3152,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:setContactFilter(filter: function)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3152,
                    31
                ],
                "name": "setContactFilter",
                "rawdesc": "\nSets a function for collision filtering.\n\nIf the group and category filtering doesn't generate a collision decision, this function gets called with the two fixtures as arguments. The function should return a boolean value where true means the fixtures will collide and false means they will pass through each other.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setContactFilter)",
                "start": [
                    3152,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setGravity)\n\n@*param* `x` — The x component of gravity.\n\n@*param* `y` — The y component of gravity.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3162,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3162,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "The x component of gravity.",
                            "finish": [
                                3162,
                                27
                            ],
                            "name": "x",
                            "rawdesc": "The x component of gravity.",
                            "start": [
                                3162,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of gravity.",
                            "finish": [
                                3162,
                                30
                            ],
                            "name": "y",
                            "rawdesc": "The y component of gravity.",
                            "start": [
                                3162,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setGravity)\n\n@*param* `x` — The x component of gravity.\n\n@*param* `y` — The y component of gravity.",
                    "finish": [
                        3162,
                        35
                    ],
                    "rawdesc": "\nSet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setGravity)",
                    "start": [
                        3162,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:setGravity(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3162,
                    25
                ],
                "name": "setGravity",
                "rawdesc": "\nSet the gravity of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setGravity)",
                "start": [
                    3162,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setSleepingAllowed)\n\n@*param* `allow` — True if bodies in the world are allowed to sleep, or false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3171,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3171,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "True if bodies in the world are allowed to sleep, or false if not.",
                            "finish": [
                                3171,
                                39
                            ],
                            "name": "allow",
                            "rawdesc": "True if bodies in the world are allowed to sleep, or false if not.",
                            "start": [
                                3171,
                                34
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setSleepingAllowed)\n\n@*param* `allow` — True if bodies in the world are allowed to sleep, or false if not.",
                    "finish": [
                        3171,
                        44
                    ],
                    "rawdesc": "\nSets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setSleepingAllowed)",
                    "start": [
                        3171,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:setSleepingAllowed(allow: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3171,
                    33
                ],
                "name": "setSleepingAllowed",
                "rawdesc": "\nSets the sleep behaviour of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:setSleepingAllowed)",
                "start": [
                    3171,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTranslates the World's origin. Useful in large worlds where floating point precision issues become noticeable at far distances from the origin.\n\n\n[Open in Browser](https://love2d.org/wiki/World:translateOrigin)\n\n@*param* `x` — The x component of the new origin with respect to the old origin.\n\n@*param* `y` — The y component of the new origin with respect to the old origin.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3181,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3181,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "The x component of the new origin with respect to the old origin.",
                            "finish": [
                                3181,
                                32
                            ],
                            "name": "x",
                            "rawdesc": "The x component of the new origin with respect to the old origin.",
                            "start": [
                                3181,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the new origin with respect to the old origin.",
                            "finish": [
                                3181,
                                35
                            ],
                            "name": "y",
                            "rawdesc": "The y component of the new origin with respect to the old origin.",
                            "start": [
                                3181,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTranslates the World's origin. Useful in large worlds where floating point precision issues become noticeable at far distances from the origin.\n\n\n[Open in Browser](https://love2d.org/wiki/World:translateOrigin)\n\n@*param* `x` — The x component of the new origin with respect to the old origin.\n\n@*param* `y` — The y component of the new origin with respect to the old origin.",
                    "finish": [
                        3181,
                        40
                    ],
                    "rawdesc": "\nTranslates the World's origin. Useful in large worlds where floating point precision issues become noticeable at far distances from the origin.\n\n\n[Open in Browser](https://love2d.org/wiki/World:translateOrigin)",
                    "start": [
                        3181,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:translateOrigin(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3181,
                    30
                ],
                "name": "translateOrigin",
                "rawdesc": "\nTranslates the World's origin. Useful in large worlds where floating point precision issues become noticeable at far distances from the origin.\n\n\n[Open in Browser](https://love2d.org/wiki/World:translateOrigin)",
                "start": [
                    3181,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                137,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                137,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        }
                    ],
                    "desc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)\n\n@*return* `type` — The type as a string.",
                    "finish": [
                        137,
                        26
                    ],
                    "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                    "returns": [
                        {
                            "desc": "The type as a string.",
                            "name": "type",
                            "rawdesc": "The type as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        137,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:type()\n  -> type: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    137,
                    20
                ],
                "name": "type",
                "rawdesc": "\nGets the type of the object as a string.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:type)",
                "start": [
                    137,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "finish": [
                                147,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nThe superclass of all LÖVE types.\n\n\n[Open in Browser](https://love2d.org/wiki/love)\n",
                            "start": [
                                147,
                                8
                            ],
                            "type": "self",
                            "view": "love.Object"
                        },
                        {
                            "desc": "The name of the type to check for.",
                            "finish": [
                                147,
                                27
                            ],
                            "name": "name",
                            "rawdesc": "The name of the type to check for.",
                            "start": [
                                147,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)\n\n@*param* `name` — The name of the type to check for.\n\n@*return* `b` — True if the object is of the specified type, false otherwise.",
                    "finish": [
                        147,
                        32
                    ],
                    "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                    "returns": [
                        {
                            "desc": "True if the object is of the specified type, false otherwise.",
                            "name": "b",
                            "rawdesc": "True if the object is of the specified type, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.Object:typeOf(name: string)\n  -> b: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    147,
                    22
                ],
                "name": "typeOf",
                "rawdesc": "\nChecks whether an object is of a certain type. If the object has the type with the specified name in its hierarchy, this function will return true.\n\n\n[Open in Browser](https://love2d.org/wiki/Object:typeOf)",
                "start": [
                    147,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUpdate the state of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:update)\n\n@*param* `dt` — The time (in seconds) to advance the physics simulation.\n\n@*param* `velocityiterations` — The maximum number of steps used to determine the new velocities when resolving a collision.\n\n@*param* `positioniterations` — The maximum number of steps used to determine the new positions when resolving a collision.",
                "extends": {
                    "args": [
                        {
                            "desc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "finish": [
                                3192,
                                8
                            ],
                            "name": "self",
                            "rawdesc": "\nA world is an object that contains all bodies and joints.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                            "start": [
                                3192,
                                8
                            ],
                            "type": "self",
                            "view": "love.World"
                        },
                        {
                            "desc": "The time (in seconds) to advance the physics simulation.",
                            "finish": [
                                3192,
                                24
                            ],
                            "name": "dt",
                            "rawdesc": "The time (in seconds) to advance the physics simulation.",
                            "start": [
                                3192,
                                22
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum number of steps used to determine the new velocities when resolving a collision.",
                            "finish": [
                                3192,
                                44
                            ],
                            "name": "velocityiterations",
                            "rawdesc": "The maximum number of steps used to determine the new velocities when resolving a collision.",
                            "start": [
                                3192,
                                26
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The maximum number of steps used to determine the new positions when resolving a collision.",
                            "finish": [
                                3192,
                                64
                            ],
                            "name": "positioniterations",
                            "rawdesc": "The maximum number of steps used to determine the new positions when resolving a collision.",
                            "start": [
                                3192,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nUpdate the state of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:update)\n\n@*param* `dt` — The time (in seconds) to advance the physics simulation.\n\n@*param* `velocityiterations` — The maximum number of steps used to determine the new velocities when resolving a collision.\n\n@*param* `positioniterations` — The maximum number of steps used to determine the new positions when resolving a collision.",
                    "finish": [
                        3192,
                        69
                    ],
                    "rawdesc": "\nUpdate the state of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:update)",
                    "start": [
                        3192,
                        0
                    ],
                    "type": "function",
                    "view": "(method) love.World:update(dt: number, velocityiterations?: number, positioniterations?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    3192,
                    21
                ],
                "name": "update",
                "rawdesc": "\nUpdate the state of the world.\n\n\n[Open in Browser](https://love2d.org/wiki/World:update)",
                "start": [
                    3192,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.World",
        "type": "type",
        "view": "love.World"
    },
    {
        "defines": [
            {
                "desc": "```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nlove.WrapMode:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "finish": [
                    3976,
                    16
                ],
                "rawdesc": "```lua\n-- \n-- How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/WrapMode)\n-- \nlove.WrapMode:\n    | \"clamp\" -- Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.\n    | \"repeat\" -- Repeat the texture. Fills the whole available extent.\n    | \"mirroredrepeat\" -- Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.\n    | \"clampzero\" -- Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)\n```",
                "start": [
                    3960,
                    10
                ],
                "type": "doc.alias",
                "view": "\"clamp\"|\"clampzero\"|\"mirroredrepeat\"|\"repeat\""
            }
        ],
        "fields": [],
        "name": "love.WrapMode",
        "type": "type",
        "view": "love.WrapMode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.audio",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)\n\n@*return* `effects` — The list of the names of the currently enabled effects.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)\n\n@*return* `effects` — The list of the names of the currently enabled effects.",
                    "finish": [
                        18,
                        42
                    ],
                    "rawdesc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)",
                    "returns": [
                        {
                            "desc": "The list of the names of the currently enabled effects.",
                            "name": "effects",
                            "rawdesc": "The list of the names of the currently enabled effects.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getActiveEffects()\n  -> effects: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    18,
                    36
                ],
                "name": "getActiveEffects",
                "rawdesc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)\n\n@*return* `count` — The current number of simultaneously playing sources.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)\n\n@*return* `count` — The current number of simultaneously playing sources.",
                    "finish": [
                        27,
                        46
                    ],
                    "rawdesc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)",
                    "returns": [
                        {
                            "desc": "The current number of simultaneously playing sources.",
                            "name": "count",
                            "rawdesc": "The current number of simultaneously playing sources.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getActiveSourceCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    27,
                    40
                ],
                "name": "getActiveSourceCount",
                "rawdesc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n@*return* `model` — The current distance model. The default is 'inverseclamped'.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n@*return* `model` — The current distance model. The default is 'inverseclamped'.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "finish": [
                        36,
                        42
                    ],
                    "rawdesc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "returns": [
                        {
                            "desc": "The current distance model. The default is 'inverseclamped'.",
                            "name": "model",
                            "rawdesc": "The current distance model. The default is 'inverseclamped'.",
                            "type": "function.return",
                            "view": "\"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getDistanceModel()\n  -> model: \"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    36,
                    36
                ],
                "name": "getDistanceModel",
                "rawdesc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)\n\n@*return* `scale` — The current doppler scale factor.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)\n\n@*return* `scale` — The current doppler scale factor.",
                    "finish": [
                        45,
                        41
                    ],
                    "rawdesc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)",
                    "returns": [
                        {
                            "desc": "The current doppler scale factor.",
                            "name": "scale",
                            "rawdesc": "The current doppler scale factor.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        45,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getDopplerScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    45,
                    35
                ],
                "name": "getDopplerScale",
                "rawdesc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)",
                "start": [
                    45,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)\n\n@*param* `name` — The name of the effect.\n\n@*return* `settings` — The settings associated with the effect.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the effect.",
                            "finish": [
                                55,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name of the effect.",
                            "start": [
                                55,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)\n\n@*param* `name` — The name of the effect.\n\n@*return* `settings` — The settings associated with the effect.",
                    "finish": [
                        55,
                        39
                    ],
                    "rawdesc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)",
                    "returns": [
                        {
                            "desc": "The settings associated with the effect.",
                            "name": "settings",
                            "rawdesc": "The settings associated with the effect.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getEffect(name: string)\n  -> settings: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    55,
                    29
                ],
                "name": "getEffect",
                "rawdesc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)\n\n@*return* `maximum` — The maximum number of active effects.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)\n\n@*return* `maximum` — The maximum number of active effects.",
                    "finish": [
                        64,
                        44
                    ],
                    "rawdesc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)",
                    "returns": [
                        {
                            "desc": "The maximum number of active effects.",
                            "name": "maximum",
                            "rawdesc": "The maximum number of active effects.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        64,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getMaxSceneEffects()\n  -> maximum: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    64,
                    38
                ],
                "name": "getMaxSceneEffects",
                "rawdesc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)",
                "start": [
                    64,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)\n\n@*return* `maximum` — The maximum number of active Effects per Source.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)\n\n@*return* `maximum` — The maximum number of active Effects per Source.",
                    "finish": [
                        73,
                        45
                    ],
                    "rawdesc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)",
                    "returns": [
                        {
                            "desc": "The maximum number of active Effects per Source.",
                            "name": "maximum",
                            "rawdesc": "The maximum number of active Effects per Source.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getMaxSourceEffects()\n  -> maximum: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    73,
                    39
                ],
                "name": "getMaxSourceEffects",
                "rawdesc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)\n\n@*return* `fx` — Forward vector of the listener orientation.\n\n@*return* `fy` — Forward vector of the listener orientation.\n\n@*return* `fz` — Forward vector of the listener orientation.\n\n@*return* `ux` — Up vector of the listener orientation.\n\n@*return* `uy` — Up vector of the listener orientation.\n\n@*return* `uz` — Up vector of the listener orientation.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)\n\n@*return* `fx` — Forward vector of the listener orientation.\n\n@*return* `fy` — Forward vector of the listener orientation.\n\n@*return* `fz` — Forward vector of the listener orientation.\n\n@*return* `ux` — Up vector of the listener orientation.\n\n@*return* `uy` — Up vector of the listener orientation.\n\n@*return* `uz` — Up vector of the listener orientation.",
                    "finish": [
                        87,
                        40
                    ],
                    "rawdesc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)",
                    "returns": [
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "name": "fx",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "name": "fy",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "name": "fz",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "name": "ux",
                            "rawdesc": "Up vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "name": "uy",
                            "rawdesc": "Up vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "name": "uz",
                            "rawdesc": "Up vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getOrientation()\n  -> fx: number\n  2. fy: number\n  3. fz: number\n  4. ux: number\n  5. uy: number\n  6. uz: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    87,
                    34
                ],
                "name": "getOrientation",
                "rawdesc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)\n\n@*return* `x` — The X position of the listener.\n\n@*return* `y` — The Y position of the listener.\n\n@*return* `z` — The Z position of the listener.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)\n\n@*return* `x` — The X position of the listener.\n\n@*return* `y` — The Y position of the listener.\n\n@*return* `z` — The Z position of the listener.",
                    "finish": [
                        98,
                        37
                    ],
                    "rawdesc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)",
                    "returns": [
                        {
                            "desc": "The X position of the listener.",
                            "name": "x",
                            "rawdesc": "The X position of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y position of the listener.",
                            "name": "y",
                            "rawdesc": "The Y position of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z position of the listener.",
                            "name": "z",
                            "rawdesc": "The Z position of the listener.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        98,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getPosition()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    98,
                    31
                ],
                "name": "getPosition",
                "rawdesc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)",
                "start": [
                    98,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)\n\n@*return* `devices` — The list of connected recording devices.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)\n\n@*return* `devices` — The list of connected recording devices.",
                    "finish": [
                        111,
                        45
                    ],
                    "rawdesc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)",
                    "returns": [
                        {
                            "desc": "The list of connected recording devices.",
                            "name": "devices",
                            "rawdesc": "The list of connected recording devices.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        111,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getRecordingDevices()\n  -> devices: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    111,
                    39
                ],
                "name": "getRecordingDevices",
                "rawdesc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)",
                "start": [
                    111,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)\n\n@*return* `x` — The X velocity of the listener.\n\n@*return* `y` — The Y velocity of the listener.\n\n@*return* `z` — The Z velocity of the listener.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)\n\n@*return* `x` — The X velocity of the listener.\n\n@*return* `y` — The Y velocity of the listener.\n\n@*return* `z` — The Z velocity of the listener.",
                    "finish": [
                        122,
                        37
                    ],
                    "rawdesc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)",
                    "returns": [
                        {
                            "desc": "The X velocity of the listener.",
                            "name": "x",
                            "rawdesc": "The X velocity of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y velocity of the listener.",
                            "name": "y",
                            "rawdesc": "The Y velocity of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z velocity of the listener.",
                            "name": "z",
                            "rawdesc": "The Z velocity of the listener.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        122,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getVelocity()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    122,
                    31
                ],
                "name": "getVelocity",
                "rawdesc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)",
                "start": [
                    122,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)\n\n@*return* `volume` — The current master volume",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)\n\n@*return* `volume` — The current master volume",
                    "finish": [
                        131,
                        35
                    ],
                    "rawdesc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)",
                    "returns": [
                        {
                            "desc": "The current master volume",
                            "name": "volume",
                            "rawdesc": "The current master volume",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getVolume()\n  -> volume: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    131,
                    29
                ],
                "name": "getVolume",
                "rawdesc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)",
                "start": [
                    131,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)\n\n@*return* `supported` — True if effects are supported, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)\n\n@*return* `supported` — True if effects are supported, false otherwise.",
                    "finish": [
                        140,
                        44
                    ],
                    "rawdesc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)",
                    "returns": [
                        {
                            "desc": "True if effects are supported, false otherwise.",
                            "name": "supported",
                            "rawdesc": "True if effects are supported, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        140,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.isEffectsSupported()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    140,
                    38
                ],
                "name": "isEffectsSupported",
                "rawdesc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)",
                "start": [
                    140,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)\n\n@*param* `samplerate` — Number of samples per second when playing.\n\n@*param* `bitdepth` — Bits per sample (8 or 16).\n\n@*param* `channels` — 1 for mono or 2 for stereo.\n\n@*param* `buffercount` — The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.\n\n@*return* `source` — The new Source usable with Source:queue.",
                "extends": {
                    "args": [
                        {
                            "desc": "Number of samples per second when playing.",
                            "finish": [
                                153,
                                49
                            ],
                            "name": "samplerate",
                            "rawdesc": "Number of samples per second when playing.",
                            "start": [
                                153,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Bits per sample (8 or 16).",
                            "finish": [
                                153,
                                59
                            ],
                            "name": "bitdepth",
                            "rawdesc": "Bits per sample (8 or 16).",
                            "start": [
                                153,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "1 for mono or 2 for stereo.",
                            "finish": [
                                153,
                                69
                            ],
                            "name": "channels",
                            "rawdesc": "1 for mono or 2 for stereo.",
                            "start": [
                                153,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.",
                            "finish": [
                                153,
                                82
                            ],
                            "name": "buffercount",
                            "rawdesc": "The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.",
                            "start": [
                                153,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)\n\n@*param* `samplerate` — Number of samples per second when playing.\n\n@*param* `bitdepth` — Bits per sample (8 or 16).\n\n@*param* `channels` — 1 for mono or 2 for stereo.\n\n@*param* `buffercount` — The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.\n\n@*return* `source` — The new Source usable with Source:queue.",
                    "finish": [
                        153,
                        87
                    ],
                    "rawdesc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)",
                    "returns": [
                        {
                            "desc": "The new Source usable with Source:queue.",
                            "name": "source",
                            "rawdesc": "The new Source usable with Source:queue.",
                            "type": "function.return",
                            "view": "love.Source"
                        }
                    ],
                    "start": [
                        153,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.newQueueableSource(samplerate: number, bitdepth: number, channels: number, buffercount?: number)\n  -> source: love.Source"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    153,
                    38
                ],
                "name": "newQueueableSource",
                "rawdesc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)",
                "start": [
                    153,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n@*param* `filename` — The filepath to the audio file.\n\n@*param* `type` — Streaming or static source.\n\n@*return* `source` — A new Source that can play the specified audio.\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the audio file.",
                            "finish": [
                                170,
                                38
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the audio file.",
                            "start": [
                                170,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Streaming or static source.",
                            "finish": [
                                170,
                                44
                            ],
                            "name": "type",
                            "rawdesc": "Streaming or static source.",
                            "start": [
                                170,
                                40
                            ],
                            "type": "local",
                            "view": "\"queue\"|\"static\"|\"stream\""
                        }
                    ],
                    "desc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n@*param* `filename` — The filepath to the audio file.\n\n@*param* `type` — Streaming or static source.\n\n@*return* `source` — A new Source that can play the specified audio.\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                    "finish": [
                        170,
                        49
                    ],
                    "rawdesc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                    "returns": [
                        {
                            "desc": "A new Source that can play the specified audio.",
                            "name": "source",
                            "rawdesc": "A new Source that can play the specified audio.",
                            "type": "function.return",
                            "view": "love.Source"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.newSource(filename: string, type: \"queue\"|\"static\"|\"stream\")\n  -> source: love.Source"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    170,
                    29
                ],
                "name": "newSource",
                "rawdesc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "start": [
                    170,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)\n\n\n---\n\n@*return* `Sources` — A table containing a list of Sources that were paused by this call.",
                "extends": {
                    "args": [],
                    "desc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)\n\n\n---\n\n@*return* `Sources` — A table containing a list of Sources that were paused by this call.",
                    "finish": [
                        181,
                        31
                    ],
                    "rawdesc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)",
                    "returns": [
                        {
                            "desc": "A table containing a list of Sources that were paused by this call.",
                            "name": "Sources",
                            "rawdesc": "A table containing a list of Sources that were paused by this call.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.pause()\n  -> Sources: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    181,
                    25
                ],
                "name": "pause",
                "rawdesc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)\n\n\n---\n\n@*param* `source` — The Source to play.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Source to play.",
                            "finish": [
                                192,
                                31
                            ],
                            "name": "source",
                            "rawdesc": "The Source to play.",
                            "start": [
                                192,
                                25
                            ],
                            "type": "local",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)\n\n\n---\n\n@*param* `source` — The Source to play.",
                    "finish": [
                        192,
                        36
                    ],
                    "rawdesc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)",
                    "start": [
                        192,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.play(source: love.Source)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    192,
                    24
                ],
                "name": "play",
                "rawdesc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)",
                "start": [
                    192,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n@*param* `model` — The new distance model.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The new distance model.",
                            "finish": [
                                201,
                                42
                            ],
                            "name": "model",
                            "rawdesc": "The new distance model.",
                            "start": [
                                201,
                                37
                            ],
                            "type": "local",
                            "view": "\"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
                        }
                    ],
                    "desc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n@*param* `model` — The new distance model.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "finish": [
                        201,
                        47
                    ],
                    "rawdesc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setDistanceModel(model: \"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    201,
                    36
                ],
                "name": "setDistanceModel",
                "rawdesc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)\n\n@*param* `scale` — The new doppler scale factor. The scale must be greater than 0.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new doppler scale factor. The scale must be greater than 0.",
                            "finish": [
                                210,
                                41
                            ],
                            "name": "scale",
                            "rawdesc": "The new doppler scale factor. The scale must be greater than 0.",
                            "start": [
                                210,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)\n\n@*param* `scale` — The new doppler scale factor. The scale must be greater than 0.",
                    "finish": [
                        210,
                        46
                    ],
                    "rawdesc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)",
                    "start": [
                        210,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setDopplerScale(scale: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    210,
                    35
                ],
                "name": "setDopplerScale",
                "rawdesc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)",
                "start": [
                    210,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)\n\n\n---\n\n@*param* `name` — The name of the effect.\n\n@*param* `settings` — The settings to use for this effect, with the following fields:\n\n@*return* `success` — Whether the effect was successfully created.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the effect.",
                            "finish": [
                                224,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name of the effect.",
                            "start": [
                                224,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The settings to use for this effect, with the following fields:",
                            "finish": [
                                224,
                                44
                            ],
                            "name": "settings",
                            "rawdesc": "The settings to use for this effect, with the following fields:",
                            "start": [
                                224,
                                36
                            ],
                            "type": "local",
                            "view": "{ type: \"chorus\"|\"compressor\"|\"distortion\"|\"echo\"|\"equalizer\"...(+3), volume: number }"
                        }
                    ],
                    "desc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)\n\n\n---\n\n@*param* `name` — The name of the effect.\n\n@*param* `settings` — The settings to use for this effect, with the following fields:\n\n@*return* `success` — Whether the effect was successfully created.",
                    "finish": [
                        224,
                        49
                    ],
                    "rawdesc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)",
                    "returns": [
                        {
                            "desc": "Whether the effect was successfully created.",
                            "name": "success",
                            "rawdesc": "Whether the effect was successfully created.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        224,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setEffect(name: string, settings: { type: \"chorus\"|\"compressor\"|\"distortion\"|\"echo\"|\"equalizer\"...(+3), volume: number })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    224,
                    29
                ],
                "name": "setEffect",
                "rawdesc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)",
                "start": [
                    224,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)\n\n@*param* `mix` — True to enable mixing, false to disable it.\n\n@*return* `success` — True if the change succeeded, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable mixing, false to disable it.",
                            "finish": [
                                234,
                                40
                            ],
                            "name": "mix",
                            "rawdesc": "True to enable mixing, false to disable it.",
                            "start": [
                                234,
                                37
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)\n\n@*param* `mix` — True to enable mixing, false to disable it.\n\n@*return* `success` — True if the change succeeded, false otherwise.",
                    "finish": [
                        234,
                        45
                    ],
                    "rawdesc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)",
                    "returns": [
                        {
                            "desc": "True if the change succeeded, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the change succeeded, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        234,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setMixWithSystem(mix: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    234,
                    36
                ],
                "name": "setMixWithSystem",
                "rawdesc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)",
                "start": [
                    234,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)\n\n@*param* `fx` — Forward vector of the listener orientation.\n\n@*param* `fy` — Forward vector of the listener orientation.\n\n@*param* `fz` — Forward vector of the listener orientation.\n\n@*param* `ux` — Up vector of the listener orientation.\n\n@*param* `uy` — Up vector of the listener orientation.\n\n@*param* `uz` — Up vector of the listener orientation.",
                "extends": {
                    "args": [
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "finish": [
                                248,
                                37
                            ],
                            "name": "fx",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "start": [
                                248,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "finish": [
                                248,
                                41
                            ],
                            "name": "fy",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "start": [
                                248,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "finish": [
                                248,
                                45
                            ],
                            "name": "fz",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "start": [
                                248,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "finish": [
                                248,
                                49
                            ],
                            "name": "ux",
                            "rawdesc": "Up vector of the listener orientation.",
                            "start": [
                                248,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "finish": [
                                248,
                                53
                            ],
                            "name": "uy",
                            "rawdesc": "Up vector of the listener orientation.",
                            "start": [
                                248,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "finish": [
                                248,
                                57
                            ],
                            "name": "uz",
                            "rawdesc": "Up vector of the listener orientation.",
                            "start": [
                                248,
                                55
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)\n\n@*param* `fx` — Forward vector of the listener orientation.\n\n@*param* `fy` — Forward vector of the listener orientation.\n\n@*param* `fz` — Forward vector of the listener orientation.\n\n@*param* `ux` — Up vector of the listener orientation.\n\n@*param* `uy` — Up vector of the listener orientation.\n\n@*param* `uz` — Up vector of the listener orientation.",
                    "finish": [
                        248,
                        62
                    ],
                    "rawdesc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)",
                    "start": [
                        248,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setOrientation(fx: number, fy: number, fz: number, ux: number, uy: number, uz: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    248,
                    34
                ],
                "name": "setOrientation",
                "rawdesc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)",
                "start": [
                    248,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)\n\n@*param* `x` — The x position of the listener.\n\n@*param* `y` — The y position of the listener.\n\n@*param* `z` — The z position of the listener.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x position of the listener.",
                            "finish": [
                                259,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the listener.",
                            "start": [
                                259,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the listener.",
                            "finish": [
                                259,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the listener.",
                            "start": [
                                259,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The z position of the listener.",
                            "finish": [
                                259,
                                39
                            ],
                            "name": "z",
                            "rawdesc": "The z position of the listener.",
                            "start": [
                                259,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)\n\n@*param* `x` — The x position of the listener.\n\n@*param* `y` — The y position of the listener.\n\n@*param* `z` — The z position of the listener.",
                    "finish": [
                        259,
                        44
                    ],
                    "rawdesc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)",
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setPosition(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    259,
                    31
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)\n\n@*param* `x` — The X velocity of the listener.\n\n@*param* `y` — The Y velocity of the listener.\n\n@*param* `z` — The Z velocity of the listener.",
                "extends": {
                    "args": [
                        {
                            "desc": "The X velocity of the listener.",
                            "finish": [
                                270,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The X velocity of the listener.",
                            "start": [
                                270,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Y velocity of the listener.",
                            "finish": [
                                270,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The Y velocity of the listener.",
                            "start": [
                                270,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Z velocity of the listener.",
                            "finish": [
                                270,
                                39
                            ],
                            "name": "z",
                            "rawdesc": "The Z velocity of the listener.",
                            "start": [
                                270,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)\n\n@*param* `x` — The X velocity of the listener.\n\n@*param* `y` — The Y velocity of the listener.\n\n@*param* `z` — The Z velocity of the listener.",
                    "finish": [
                        270,
                        44
                    ],
                    "rawdesc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)",
                    "start": [
                        270,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setVelocity(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    270,
                    31
                ],
                "name": "setVelocity",
                "rawdesc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)",
                "start": [
                    270,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)\n\n@*param* `volume` — 1.0 is max and 0.0 is off.",
                "extends": {
                    "args": [
                        {
                            "desc": "1.0 is max and 0.0 is off.",
                            "finish": [
                                279,
                                36
                            ],
                            "name": "volume",
                            "rawdesc": "1.0 is max and 0.0 is off.",
                            "start": [
                                279,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)\n\n@*param* `volume` — 1.0 is max and 0.0 is off.",
                    "finish": [
                        279,
                        41
                    ],
                    "rawdesc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)",
                    "start": [
                        279,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setVolume(volume: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    279,
                    29
                ],
                "name": "setVolume",
                "rawdesc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)",
                "start": [
                    279,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                "extends": {
                    "args": [],
                    "desc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                    "finish": [
                        290,
                        30
                    ],
                    "rawdesc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                    "start": [
                        290,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.stop()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    290,
                    24
                ],
                "name": "stop",
                "rawdesc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                "start": [
                    290,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio",
        "type": "type",
        "view": "love.audio"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "extends": {
                    "desc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.audio"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "audio",
                "rawdesc": "\nProvides an interface to create noise with the user's speakers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.audio",
                "visible": "public"
            }
        ],
        "name": "love.audio",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)\n\n@*return* `effects` — The list of the names of the currently enabled effects.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)\n\n@*return* `effects` — The list of the names of the currently enabled effects.",
                    "finish": [
                        18,
                        42
                    ],
                    "rawdesc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)",
                    "returns": [
                        {
                            "desc": "The list of the names of the currently enabled effects.",
                            "name": "effects",
                            "rawdesc": "The list of the names of the currently enabled effects.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getActiveEffects()\n  -> effects: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    18,
                    36
                ],
                "name": "getActiveEffects",
                "rawdesc": "\nGets a list of the names of the currently enabled effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveEffects)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getActiveEffects",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)\n\n@*return* `count` — The current number of simultaneously playing sources.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)\n\n@*return* `count` — The current number of simultaneously playing sources.",
                    "finish": [
                        27,
                        46
                    ],
                    "rawdesc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)",
                    "returns": [
                        {
                            "desc": "The current number of simultaneously playing sources.",
                            "name": "count",
                            "rawdesc": "The current number of simultaneously playing sources.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getActiveSourceCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    27,
                    40
                ],
                "name": "getActiveSourceCount",
                "rawdesc": "\nGets the current number of simultaneously playing sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getActiveSourceCount)",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getActiveSourceCount",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n@*return* `model` — The current distance model. The default is 'inverseclamped'.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n@*return* `model` — The current distance model. The default is 'inverseclamped'.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "finish": [
                        36,
                        42
                    ],
                    "rawdesc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "returns": [
                        {
                            "desc": "The current distance model. The default is 'inverseclamped'.",
                            "name": "model",
                            "rawdesc": "The current distance model. The default is 'inverseclamped'.",
                            "type": "function.return",
                            "view": "\"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getDistanceModel()\n  -> model: \"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    36,
                    36
                ],
                "name": "getDistanceModel",
                "rawdesc": "\nReturns the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getDistanceModel",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)\n\n@*return* `scale` — The current doppler scale factor.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)\n\n@*return* `scale` — The current doppler scale factor.",
                    "finish": [
                        45,
                        41
                    ],
                    "rawdesc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)",
                    "returns": [
                        {
                            "desc": "The current doppler scale factor.",
                            "name": "scale",
                            "rawdesc": "The current doppler scale factor.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        45,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getDopplerScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    45,
                    35
                ],
                "name": "getDopplerScale",
                "rawdesc": "\nGets the current global scale factor for velocity-based doppler effects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getDopplerScale)",
                "start": [
                    45,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getDopplerScale",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)\n\n@*param* `name` — The name of the effect.\n\n@*return* `settings` — The settings associated with the effect.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the effect.",
                            "finish": [
                                55,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name of the effect.",
                            "start": [
                                55,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)\n\n@*param* `name` — The name of the effect.\n\n@*return* `settings` — The settings associated with the effect.",
                    "finish": [
                        55,
                        39
                    ],
                    "rawdesc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)",
                    "returns": [
                        {
                            "desc": "The settings associated with the effect.",
                            "name": "settings",
                            "rawdesc": "The settings associated with the effect.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getEffect(name: string)\n  -> settings: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    55,
                    29
                ],
                "name": "getEffect",
                "rawdesc": "\nGets the settings associated with an effect.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getEffect)",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getEffect",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)\n\n@*return* `maximum` — The maximum number of active effects.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)\n\n@*return* `maximum` — The maximum number of active effects.",
                    "finish": [
                        64,
                        44
                    ],
                    "rawdesc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)",
                    "returns": [
                        {
                            "desc": "The maximum number of active effects.",
                            "name": "maximum",
                            "rawdesc": "The maximum number of active effects.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        64,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getMaxSceneEffects()\n  -> maximum: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    64,
                    38
                ],
                "name": "getMaxSceneEffects",
                "rawdesc": "\nGets the maximum number of active effects supported by the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSceneEffects)",
                "start": [
                    64,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getMaxSceneEffects",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)\n\n@*return* `maximum` — The maximum number of active Effects per Source.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)\n\n@*return* `maximum` — The maximum number of active Effects per Source.",
                    "finish": [
                        73,
                        45
                    ],
                    "rawdesc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)",
                    "returns": [
                        {
                            "desc": "The maximum number of active Effects per Source.",
                            "name": "maximum",
                            "rawdesc": "The maximum number of active Effects per Source.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getMaxSourceEffects()\n  -> maximum: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    73,
                    39
                ],
                "name": "getMaxSourceEffects",
                "rawdesc": "\nGets the maximum number of active Effects in a single Source object, that the system can support.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getMaxSourceEffects)",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getMaxSourceEffects",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)\n\n@*return* `fx` — Forward vector of the listener orientation.\n\n@*return* `fy` — Forward vector of the listener orientation.\n\n@*return* `fz` — Forward vector of the listener orientation.\n\n@*return* `ux` — Up vector of the listener orientation.\n\n@*return* `uy` — Up vector of the listener orientation.\n\n@*return* `uz` — Up vector of the listener orientation.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)\n\n@*return* `fx` — Forward vector of the listener orientation.\n\n@*return* `fy` — Forward vector of the listener orientation.\n\n@*return* `fz` — Forward vector of the listener orientation.\n\n@*return* `ux` — Up vector of the listener orientation.\n\n@*return* `uy` — Up vector of the listener orientation.\n\n@*return* `uz` — Up vector of the listener orientation.",
                    "finish": [
                        87,
                        40
                    ],
                    "rawdesc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)",
                    "returns": [
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "name": "fx",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "name": "fy",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "name": "fz",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "name": "ux",
                            "rawdesc": "Up vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "name": "uy",
                            "rawdesc": "Up vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "name": "uz",
                            "rawdesc": "Up vector of the listener orientation.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getOrientation()\n  -> fx: number\n  2. fy: number\n  3. fz: number\n  4. ux: number\n  5. uy: number\n  6. uz: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    87,
                    34
                ],
                "name": "getOrientation",
                "rawdesc": "\nReturns the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getOrientation)",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getOrientation",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)\n\n@*return* `x` — The X position of the listener.\n\n@*return* `y` — The Y position of the listener.\n\n@*return* `z` — The Z position of the listener.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)\n\n@*return* `x` — The X position of the listener.\n\n@*return* `y` — The Y position of the listener.\n\n@*return* `z` — The Z position of the listener.",
                    "finish": [
                        98,
                        37
                    ],
                    "rawdesc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)",
                    "returns": [
                        {
                            "desc": "The X position of the listener.",
                            "name": "x",
                            "rawdesc": "The X position of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y position of the listener.",
                            "name": "y",
                            "rawdesc": "The Y position of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z position of the listener.",
                            "name": "z",
                            "rawdesc": "The Z position of the listener.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        98,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getPosition()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    98,
                    31
                ],
                "name": "getPosition",
                "rawdesc": "\nReturns the position of the listener. Please note that positional audio only works for mono (i.e. non-stereo) sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getPosition)",
                "start": [
                    98,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)\n\n@*return* `devices` — The list of connected recording devices.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)\n\n@*return* `devices` — The list of connected recording devices.",
                    "finish": [
                        111,
                        45
                    ],
                    "rawdesc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)",
                    "returns": [
                        {
                            "desc": "The list of connected recording devices.",
                            "name": "devices",
                            "rawdesc": "The list of connected recording devices.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        111,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getRecordingDevices()\n  -> devices: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    111,
                    39
                ],
                "name": "getRecordingDevices",
                "rawdesc": "\nGets a list of RecordingDevices on the system.\n\nThe first device in the list is the user's default recording device. The list may be empty if there are no microphones connected to the system.\n\nAudio recording is currently not supported on iOS.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getRecordingDevices)",
                "start": [
                    111,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getRecordingDevices",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)\n\n@*return* `x` — The X velocity of the listener.\n\n@*return* `y` — The Y velocity of the listener.\n\n@*return* `z` — The Z velocity of the listener.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)\n\n@*return* `x` — The X velocity of the listener.\n\n@*return* `y` — The Y velocity of the listener.\n\n@*return* `z` — The Z velocity of the listener.",
                    "finish": [
                        122,
                        37
                    ],
                    "rawdesc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)",
                    "returns": [
                        {
                            "desc": "The X velocity of the listener.",
                            "name": "x",
                            "rawdesc": "The X velocity of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Y velocity of the listener.",
                            "name": "y",
                            "rawdesc": "The Y velocity of the listener.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The Z velocity of the listener.",
                            "name": "z",
                            "rawdesc": "The Z velocity of the listener.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        122,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getVelocity()\n  -> x: number\n  2. y: number\n  3. z: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    122,
                    31
                ],
                "name": "getVelocity",
                "rawdesc": "\nReturns the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVelocity)",
                "start": [
                    122,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getVelocity",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)\n\n@*return* `volume` — The current master volume",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)\n\n@*return* `volume` — The current master volume",
                    "finish": [
                        131,
                        35
                    ],
                    "rawdesc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)",
                    "returns": [
                        {
                            "desc": "The current master volume",
                            "name": "volume",
                            "rawdesc": "The current master volume",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.getVolume()\n  -> volume: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    131,
                    29
                ],
                "name": "getVolume",
                "rawdesc": "\nReturns the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.getVolume)",
                "start": [
                    131,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.getVolume",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)\n\n@*return* `supported` — True if effects are supported, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)\n\n@*return* `supported` — True if effects are supported, false otherwise.",
                    "finish": [
                        140,
                        44
                    ],
                    "rawdesc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)",
                    "returns": [
                        {
                            "desc": "True if effects are supported, false otherwise.",
                            "name": "supported",
                            "rawdesc": "True if effects are supported, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        140,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.isEffectsSupported()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    140,
                    38
                ],
                "name": "isEffectsSupported",
                "rawdesc": "\nGets whether audio effects are supported in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.isEffectsSupported)",
                "start": [
                    140,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.isEffectsSupported",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)\n\n@*param* `samplerate` — Number of samples per second when playing.\n\n@*param* `bitdepth` — Bits per sample (8 or 16).\n\n@*param* `channels` — 1 for mono or 2 for stereo.\n\n@*param* `buffercount` — The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.\n\n@*return* `source` — The new Source usable with Source:queue.",
                "extends": {
                    "args": [
                        {
                            "desc": "Number of samples per second when playing.",
                            "finish": [
                                153,
                                49
                            ],
                            "name": "samplerate",
                            "rawdesc": "Number of samples per second when playing.",
                            "start": [
                                153,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Bits per sample (8 or 16).",
                            "finish": [
                                153,
                                59
                            ],
                            "name": "bitdepth",
                            "rawdesc": "Bits per sample (8 or 16).",
                            "start": [
                                153,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "1 for mono or 2 for stereo.",
                            "finish": [
                                153,
                                69
                            ],
                            "name": "channels",
                            "rawdesc": "1 for mono or 2 for stereo.",
                            "start": [
                                153,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.",
                            "finish": [
                                153,
                                82
                            ],
                            "name": "buffercount",
                            "rawdesc": "The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.",
                            "start": [
                                153,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)\n\n@*param* `samplerate` — Number of samples per second when playing.\n\n@*param* `bitdepth` — Bits per sample (8 or 16).\n\n@*param* `channels` — 1 for mono or 2 for stereo.\n\n@*param* `buffercount` — The number of buffers that can be queued up at any given time with Source:queue. Cannot be greater than 64. A sensible default (~8) is chosen if no value is specified.\n\n@*return* `source` — The new Source usable with Source:queue.",
                    "finish": [
                        153,
                        87
                    ],
                    "rawdesc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)",
                    "returns": [
                        {
                            "desc": "The new Source usable with Source:queue.",
                            "name": "source",
                            "rawdesc": "The new Source usable with Source:queue.",
                            "type": "function.return",
                            "view": "love.Source"
                        }
                    ],
                    "start": [
                        153,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.newQueueableSource(samplerate: number, bitdepth: number, channels: number, buffercount?: number)\n  -> source: love.Source"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    153,
                    38
                ],
                "name": "newQueueableSource",
                "rawdesc": "\nCreates a new Source usable for real-time generated sound playback with Source:queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newQueueableSource)",
                "start": [
                    153,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.newQueueableSource",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n@*param* `filename` — The filepath to the audio file.\n\n@*param* `type` — Streaming or static source.\n\n@*return* `source` — A new Source that can play the specified audio.\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the audio file.",
                            "finish": [
                                170,
                                38
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the audio file.",
                            "start": [
                                170,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Streaming or static source.",
                            "finish": [
                                170,
                                44
                            ],
                            "name": "type",
                            "rawdesc": "Streaming or static source.",
                            "start": [
                                170,
                                40
                            ],
                            "type": "local",
                            "view": "\"queue\"|\"static\"|\"stream\""
                        }
                    ],
                    "desc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n@*param* `filename` — The filepath to the audio file.\n\n@*param* `type` — Streaming or static source.\n\n@*return* `source` — A new Source that can play the specified audio.\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                    "finish": [
                        170,
                        49
                    ],
                    "rawdesc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                    "returns": [
                        {
                            "desc": "A new Source that can play the specified audio.",
                            "name": "source",
                            "rawdesc": "A new Source that can play the specified audio.",
                            "type": "function.return",
                            "view": "love.Source"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.newSource(filename: string, type: \"queue\"|\"static\"|\"stream\")\n  -> source: love.Source"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    170,
                    29
                ],
                "name": "newSource",
                "rawdesc": "\nCreates a new Source from a filepath, File, Decoder or SoundData.\n\nSources created from SoundData are always static.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.newSource)\n\n\n---\n\n```lua\n-- \n-- Types of audio sources.\n-- \n-- A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SourceType)\n-- \ntype:\n    | \"static\" -- The whole audio is decoded.\n    | \"stream\" -- The audio is decoded in chunks when needed.\n    | \"queue\" -- The audio must be manually queued by the user.\n```",
                "start": [
                    170,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.newSource",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)\n\n\n---\n\n@*return* `Sources` — A table containing a list of Sources that were paused by this call.",
                "extends": {
                    "args": [],
                    "desc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)\n\n\n---\n\n@*return* `Sources` — A table containing a list of Sources that were paused by this call.",
                    "finish": [
                        181,
                        31
                    ],
                    "rawdesc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)",
                    "returns": [
                        {
                            "desc": "A table containing a list of Sources that were paused by this call.",
                            "name": "Sources",
                            "rawdesc": "A table containing a list of Sources that were paused by this call.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.pause()\n  -> Sources: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    181,
                    25
                ],
                "name": "pause",
                "rawdesc": "\nPauses specific or all currently played Sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.pause)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.pause",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)\n\n\n---\n\n@*param* `source` — The Source to play.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Source to play.",
                            "finish": [
                                192,
                                31
                            ],
                            "name": "source",
                            "rawdesc": "The Source to play.",
                            "start": [
                                192,
                                25
                            ],
                            "type": "local",
                            "view": "love.Source"
                        }
                    ],
                    "desc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)\n\n\n---\n\n@*param* `source` — The Source to play.",
                    "finish": [
                        192,
                        36
                    ],
                    "rawdesc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)",
                    "start": [
                        192,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.play(source: love.Source)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    192,
                    24
                ],
                "name": "play",
                "rawdesc": "\nPlays the specified Source.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.play)",
                "start": [
                    192,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.play",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n@*param* `model` — The new distance model.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The new distance model.",
                            "finish": [
                                201,
                                42
                            ],
                            "name": "model",
                            "rawdesc": "The new distance model.",
                            "start": [
                                201,
                                37
                            ],
                            "type": "local",
                            "view": "\"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2)"
                        }
                    ],
                    "desc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n@*param* `model` — The new distance model.\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "finish": [
                        201,
                        47
                    ],
                    "rawdesc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setDistanceModel(model: \"exponent\"|\"exponentclamped\"|\"inverse\"|\"inverseclamped\"|\"linear\"...(+2))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    201,
                    36
                ],
                "name": "setDistanceModel",
                "rawdesc": "\nSets the distance attenuation model.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDistanceModel)\n\n\n```lua\n-- \n-- The different distance models.\n-- \n-- Extended information can be found in the chapter \"3.4. Attenuation By Distance\" of the OpenAL 1.1 specification.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DistanceModel)\n-- \nmodel:\n    | \"none\" -- Sources do not get attenuated.\n    | \"inverse\" -- Inverse distance attenuation.\n    | \"inverseclamped\" -- Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.\n    | \"linear\" -- Linear attenuation.\n    | \"linearclamped\" -- Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.\n    | \"exponent\" -- Exponential attenuation.\n    | \"exponentclamped\" -- Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.\n```",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setDistanceModel",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)\n\n@*param* `scale` — The new doppler scale factor. The scale must be greater than 0.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new doppler scale factor. The scale must be greater than 0.",
                            "finish": [
                                210,
                                41
                            ],
                            "name": "scale",
                            "rawdesc": "The new doppler scale factor. The scale must be greater than 0.",
                            "start": [
                                210,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)\n\n@*param* `scale` — The new doppler scale factor. The scale must be greater than 0.",
                    "finish": [
                        210,
                        46
                    ],
                    "rawdesc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)",
                    "start": [
                        210,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setDopplerScale(scale: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    210,
                    35
                ],
                "name": "setDopplerScale",
                "rawdesc": "\nSets a global scale factor for velocity-based doppler effects. The default scale value is 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setDopplerScale)",
                "start": [
                    210,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setDopplerScale",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)\n\n\n---\n\n@*param* `name` — The name of the effect.\n\n@*param* `settings` — The settings to use for this effect, with the following fields:\n\n@*return* `success` — Whether the effect was successfully created.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the effect.",
                            "finish": [
                                224,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name of the effect.",
                            "start": [
                                224,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The settings to use for this effect, with the following fields:",
                            "finish": [
                                224,
                                44
                            ],
                            "name": "settings",
                            "rawdesc": "The settings to use for this effect, with the following fields:",
                            "start": [
                                224,
                                36
                            ],
                            "type": "local",
                            "view": "{ type: \"chorus\"|\"compressor\"|\"distortion\"|\"echo\"|\"equalizer\"...(+3), volume: number }"
                        }
                    ],
                    "desc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)\n\n\n---\n\n@*param* `name` — The name of the effect.\n\n@*param* `settings` — The settings to use for this effect, with the following fields:\n\n@*return* `success` — Whether the effect was successfully created.",
                    "finish": [
                        224,
                        49
                    ],
                    "rawdesc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)",
                    "returns": [
                        {
                            "desc": "Whether the effect was successfully created.",
                            "name": "success",
                            "rawdesc": "Whether the effect was successfully created.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        224,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setEffect(name: string, settings: { type: \"chorus\"|\"compressor\"|\"distortion\"|\"echo\"|\"equalizer\"...(+3), volume: number })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    224,
                    29
                ],
                "name": "setEffect",
                "rawdesc": "\nDefines an effect that can be applied to a Source.\n\nNot all system supports audio effects. Use love.audio.isEffectsSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setEffect)",
                "start": [
                    224,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setEffect",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)\n\n@*param* `mix` — True to enable mixing, false to disable it.\n\n@*return* `success` — True if the change succeeded, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable mixing, false to disable it.",
                            "finish": [
                                234,
                                40
                            ],
                            "name": "mix",
                            "rawdesc": "True to enable mixing, false to disable it.",
                            "start": [
                                234,
                                37
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)\n\n@*param* `mix` — True to enable mixing, false to disable it.\n\n@*return* `success` — True if the change succeeded, false otherwise.",
                    "finish": [
                        234,
                        45
                    ],
                    "rawdesc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)",
                    "returns": [
                        {
                            "desc": "True if the change succeeded, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the change succeeded, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        234,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setMixWithSystem(mix: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    234,
                    36
                ],
                "name": "setMixWithSystem",
                "rawdesc": "\nSets whether the system should mix the audio with the system's audio.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setMixWithSystem)",
                "start": [
                    234,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setMixWithSystem",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)\n\n@*param* `fx` — Forward vector of the listener orientation.\n\n@*param* `fy` — Forward vector of the listener orientation.\n\n@*param* `fz` — Forward vector of the listener orientation.\n\n@*param* `ux` — Up vector of the listener orientation.\n\n@*param* `uy` — Up vector of the listener orientation.\n\n@*param* `uz` — Up vector of the listener orientation.",
                "extends": {
                    "args": [
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "finish": [
                                248,
                                37
                            ],
                            "name": "fx",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "start": [
                                248,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "finish": [
                                248,
                                41
                            ],
                            "name": "fy",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "start": [
                                248,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Forward vector of the listener orientation.",
                            "finish": [
                                248,
                                45
                            ],
                            "name": "fz",
                            "rawdesc": "Forward vector of the listener orientation.",
                            "start": [
                                248,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "finish": [
                                248,
                                49
                            ],
                            "name": "ux",
                            "rawdesc": "Up vector of the listener orientation.",
                            "start": [
                                248,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "finish": [
                                248,
                                53
                            ],
                            "name": "uy",
                            "rawdesc": "Up vector of the listener orientation.",
                            "start": [
                                248,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Up vector of the listener orientation.",
                            "finish": [
                                248,
                                57
                            ],
                            "name": "uz",
                            "rawdesc": "Up vector of the listener orientation.",
                            "start": [
                                248,
                                55
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)\n\n@*param* `fx` — Forward vector of the listener orientation.\n\n@*param* `fy` — Forward vector of the listener orientation.\n\n@*param* `fz` — Forward vector of the listener orientation.\n\n@*param* `ux` — Up vector of the listener orientation.\n\n@*param* `uy` — Up vector of the listener orientation.\n\n@*param* `uz` — Up vector of the listener orientation.",
                    "finish": [
                        248,
                        62
                    ],
                    "rawdesc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)",
                    "start": [
                        248,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setOrientation(fx: number, fy: number, fz: number, ux: number, uy: number, uz: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    248,
                    34
                ],
                "name": "setOrientation",
                "rawdesc": "\nSets the orientation of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setOrientation)",
                "start": [
                    248,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setOrientation",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)\n\n@*param* `x` — The x position of the listener.\n\n@*param* `y` — The y position of the listener.\n\n@*param* `z` — The z position of the listener.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x position of the listener.",
                            "finish": [
                                259,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the listener.",
                            "start": [
                                259,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the listener.",
                            "finish": [
                                259,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the listener.",
                            "start": [
                                259,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The z position of the listener.",
                            "finish": [
                                259,
                                39
                            ],
                            "name": "z",
                            "rawdesc": "The z position of the listener.",
                            "start": [
                                259,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)\n\n@*param* `x` — The x position of the listener.\n\n@*param* `y` — The y position of the listener.\n\n@*param* `z` — The z position of the listener.",
                    "finish": [
                        259,
                        44
                    ],
                    "rawdesc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)",
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setPosition(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    259,
                    31
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the position of the listener, which determines how sounds play.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setPosition)",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)\n\n@*param* `x` — The X velocity of the listener.\n\n@*param* `y` — The Y velocity of the listener.\n\n@*param* `z` — The Z velocity of the listener.",
                "extends": {
                    "args": [
                        {
                            "desc": "The X velocity of the listener.",
                            "finish": [
                                270,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The X velocity of the listener.",
                            "start": [
                                270,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Y velocity of the listener.",
                            "finish": [
                                270,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The Y velocity of the listener.",
                            "start": [
                                270,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The Z velocity of the listener.",
                            "finish": [
                                270,
                                39
                            ],
                            "name": "z",
                            "rawdesc": "The Z velocity of the listener.",
                            "start": [
                                270,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)\n\n@*param* `x` — The X velocity of the listener.\n\n@*param* `y` — The Y velocity of the listener.\n\n@*param* `z` — The Z velocity of the listener.",
                    "finish": [
                        270,
                        44
                    ],
                    "rawdesc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)",
                    "start": [
                        270,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setVelocity(x: number, y: number, z: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    270,
                    31
                ],
                "name": "setVelocity",
                "rawdesc": "\nSets the velocity of the listener.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVelocity)",
                "start": [
                    270,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setVelocity",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)\n\n@*param* `volume` — 1.0 is max and 0.0 is off.",
                "extends": {
                    "args": [
                        {
                            "desc": "1.0 is max and 0.0 is off.",
                            "finish": [
                                279,
                                36
                            ],
                            "name": "volume",
                            "rawdesc": "1.0 is max and 0.0 is off.",
                            "start": [
                                279,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)\n\n@*param* `volume` — 1.0 is max and 0.0 is off.",
                    "finish": [
                        279,
                        41
                    ],
                    "rawdesc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)",
                    "start": [
                        279,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.setVolume(volume: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    279,
                    29
                ],
                "name": "setVolume",
                "rawdesc": "\nSets the master volume.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.setVolume)",
                "start": [
                    279,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.setVolume",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                "extends": {
                    "args": [],
                    "desc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                    "finish": [
                        290,
                        30
                    ],
                    "rawdesc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                    "start": [
                        290,
                        0
                    ],
                    "type": "function",
                    "view": "function love.audio.stop()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/audio.lua",
                "finish": [
                    290,
                    24
                ],
                "name": "stop",
                "rawdesc": "\nStops currently played sources.\n\n\n[Open in Browser](https://love2d.org/wiki/love.audio.stop)",
                "start": [
                    290,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.audio.stop",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nIf a file called conf.lua is present in your game folder (or .love file), it is run before the LÖVE modules are loaded. You can use this file to overwrite the love.conf function, which is later called by the LÖVE 'boot' script. Using the love.conf function, you can set some configuration options, and change things like the default size of the window, which modules are loaded, and other stuff.\n",
                "finish": [
                    152,
                    33
                ],
                "rawdesc": "\nIf a file called conf.lua is present in your game folder (or .love file), it is run before the LÖVE modules are loaded. You can use this file to overwrite the love.conf function, which is later called by the LÖVE 'boot' script. Using the love.conf function, you can set some configuration options, and change things like the default size of the window, which modules are loaded, and other stuff.\n",
                "start": [
                    152,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(t: table)"
            }
        ],
        "fields": [],
        "name": "love.conf",
        "type": "type",
        "view": "love.conf"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "extends": {
                    "desc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                    "finish": [
                        9,
                        14
                    ],
                    "rawdesc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                    "start": [
                        9,
                        12
                    ],
                    "type": "table",
                    "view": "love.data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    9,
                    9
                ],
                "name": "data",
                "rawdesc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.data",
                "visible": "public"
            }
        ],
        "name": "love.data",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    8,
                    19
                ],
                "rawdesc": "\nProvides functionality for creating and transforming data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.data",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n@*param* `container` — What type to return the compressed data as.\n\n@*param* `format` — The format to use when compressing the string.\n\n@*param* `rawstring` — The raw (un-compressed) string to compress.\n\n@*param* `level` — The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.\n\n@*return* `compressedData` — CompressedData/string which contains the compressed version of rawstring.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the compressed data as.",
                            "finish": [
                                23,
                                37
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the compressed data as.",
                            "start": [
                                23,
                                28
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The format to use when compressing the string.",
                            "finish": [
                                23,
                                45
                            ],
                            "name": "format",
                            "rawdesc": "The format to use when compressing the string.",
                            "start": [
                                23,
                                39
                            ],
                            "type": "local",
                            "view": "\"deflate\"|\"gzip\"|\"lz4\"|\"zlib\""
                        },
                        {
                            "desc": "The raw (un-compressed) string to compress.",
                            "finish": [
                                23,
                                56
                            ],
                            "name": "rawstring",
                            "rawdesc": "The raw (un-compressed) string to compress.",
                            "start": [
                                23,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.",
                            "finish": [
                                23,
                                63
                            ],
                            "name": "level",
                            "rawdesc": "The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.",
                            "start": [
                                23,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n@*param* `container` — What type to return the compressed data as.\n\n@*param* `format` — The format to use when compressing the string.\n\n@*param* `rawstring` — The raw (un-compressed) string to compress.\n\n@*param* `level` — The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.\n\n@*return* `compressedData` — CompressedData/string which contains the compressed version of rawstring.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                    "finish": [
                        23,
                        68
                    ],
                    "rawdesc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                    "returns": [
                        {
                            "desc": "CompressedData/string which contains the compressed version of rawstring.",
                            "name": "compressedData",
                            "rawdesc": "CompressedData/string which contains the compressed version of rawstring.",
                            "type": "function.return",
                            "view": "string|love.CompressedData"
                        }
                    ],
                    "start": [
                        23,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.compress(container: \"data\"|\"string\", format: \"deflate\"|\"gzip\"|\"lz4\"|\"zlib\", rawstring: string, level?: number)\n  -> compressedData: string|love.CompressedData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    23,
                    27
                ],
                "name": "compress",
                "rawdesc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "start": [
                    23,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n@*param* `container` — What type to return the decoded data as.\n\n@*param* `format` — The format of the input data.\n\n@*param* `sourceString` — The raw (encoded) data to decode.\n\n@*return* `decoded` — ByteData/string which contains the decoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the decoded data as.",
                            "finish": [
                                36,
                                35
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the decoded data as.",
                            "start": [
                                36,
                                26
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The format of the input data.",
                            "finish": [
                                36,
                                43
                            ],
                            "name": "format",
                            "rawdesc": "The format of the input data.",
                            "start": [
                                36,
                                37
                            ],
                            "type": "local",
                            "view": "\"base64\"|\"hex\""
                        },
                        {
                            "desc": "The raw (encoded) data to decode.",
                            "finish": [
                                36,
                                57
                            ],
                            "name": "sourceString",
                            "rawdesc": "The raw (encoded) data to decode.",
                            "start": [
                                36,
                                45
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n@*param* `container` — What type to return the decoded data as.\n\n@*param* `format` — The format of the input data.\n\n@*param* `sourceString` — The raw (encoded) data to decode.\n\n@*return* `decoded` — ByteData/string which contains the decoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "finish": [
                        36,
                        62
                    ],
                    "rawdesc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "returns": [
                        {
                            "desc": "ByteData/string which contains the decoded version of source.",
                            "name": "decoded",
                            "rawdesc": "ByteData/string which contains the decoded version of source.",
                            "type": "function.return",
                            "view": "string|love.ByteData"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.decode(container: \"data\"|\"string\", format: \"base64\"|\"hex\", sourceString: string)\n  -> decoded: string|love.ByteData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    36,
                    25
                ],
                "name": "decode",
                "rawdesc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n@*param* `container` — What type to return the decompressed data as.\n\n@*param* `compressedData` — The compressed data to decompress.\n\n@*return* `decompressedData` — Data/string containing the raw decompressed data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the decompressed data as.",
                            "finish": [
                                49,
                                39
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the decompressed data as.",
                            "start": [
                                49,
                                30
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The compressed data to decompress.",
                            "finish": [
                                49,
                                55
                            ],
                            "name": "compressedData",
                            "rawdesc": "The compressed data to decompress.",
                            "start": [
                                49,
                                41
                            ],
                            "type": "local",
                            "view": "love.CompressedData"
                        }
                    ],
                    "desc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n@*param* `container` — What type to return the decompressed data as.\n\n@*param* `compressedData` — The compressed data to decompress.\n\n@*return* `decompressedData` — Data/string containing the raw decompressed data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "finish": [
                        49,
                        60
                    ],
                    "rawdesc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "returns": [
                        {
                            "desc": "Data/string containing the raw decompressed data.",
                            "name": "decompressedData",
                            "rawdesc": "Data/string containing the raw decompressed data.",
                            "type": "function.return",
                            "view": "string|love.Data"
                        }
                    ],
                    "start": [
                        49,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.decompress(container: \"data\"|\"string\", compressedData: love.CompressedData)\n  -> decompressedData: string|love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    49,
                    29
                ],
                "name": "decompress",
                "rawdesc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "start": [
                    49,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — The format of the output data.\n\n@*param* `sourceString` — The raw data to encode.\n\n@*param* `linelength` — The maximum line length of the output. Only supported for base64, ignored if 0.\n\n@*return* `encoded` — ByteData/string which contains the encoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the encoded data as.",
                            "finish": [
                                63,
                                35
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the encoded data as.",
                            "start": [
                                63,
                                26
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The format of the output data.",
                            "finish": [
                                63,
                                43
                            ],
                            "name": "format",
                            "rawdesc": "The format of the output data.",
                            "start": [
                                63,
                                37
                            ],
                            "type": "local",
                            "view": "\"base64\"|\"hex\""
                        },
                        {
                            "desc": "The raw data to encode.",
                            "finish": [
                                63,
                                57
                            ],
                            "name": "sourceString",
                            "rawdesc": "The raw data to encode.",
                            "start": [
                                63,
                                45
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The maximum line length of the output. Only supported for base64, ignored if 0.",
                            "finish": [
                                63,
                                69
                            ],
                            "name": "linelength",
                            "rawdesc": "The maximum line length of the output. Only supported for base64, ignored if 0.",
                            "start": [
                                63,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — The format of the output data.\n\n@*param* `sourceString` — The raw data to encode.\n\n@*param* `linelength` — The maximum line length of the output. Only supported for base64, ignored if 0.\n\n@*return* `encoded` — ByteData/string which contains the encoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "finish": [
                        63,
                        74
                    ],
                    "rawdesc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "returns": [
                        {
                            "desc": "ByteData/string which contains the encoded version of source.",
                            "name": "encoded",
                            "rawdesc": "ByteData/string which contains the encoded version of source.",
                            "type": "function.return",
                            "view": "string|love.ByteData"
                        }
                    ],
                    "start": [
                        63,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.encode(container: \"data\"|\"string\", format: \"base64\"|\"hex\", sourceString: string, linelength?: number)\n  -> encoded: string|love.ByteData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    63,
                    25
                ],
                "name": "encode",
                "rawdesc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "start": [
                    63,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*return* `size` — The size in bytes that the packed data will use.",
                "extends": {
                    "args": [
                        {
                            "desc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "finish": [
                                75,
                                39
                            ],
                            "name": "format",
                            "rawdesc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "start": [
                                75,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*return* `size` — The size in bytes that the packed data will use.",
                    "finish": [
                        75,
                        44
                    ],
                    "rawdesc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)",
                    "returns": [
                        {
                            "desc": "The size in bytes that the packed data will use.",
                            "name": "size",
                            "rawdesc": "The size in bytes that the packed data will use.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.getPackedSize(format: string)\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    75,
                    32
                ],
                "name": "getPackedSize",
                "rawdesc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)",
                "start": [
                    75,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n@*param* `hashFunction` — Hash algorithm to use.\n\n@*param* `string` — String to hash.\n\n@*return* `rawdigest` — Raw message digest string.\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Hash algorithm to use.",
                            "finish": [
                                87,
                                36
                            ],
                            "name": "hashFunction",
                            "rawdesc": "Hash algorithm to use.",
                            "start": [
                                87,
                                24
                            ],
                            "type": "local",
                            "view": "\"md5\"|\"sha1\"|\"sha224\"|\"sha256\"|\"sha384\"...(+1)"
                        },
                        {
                            "desc": "String to hash.",
                            "finish": [
                                87,
                                44
                            ],
                            "name": "string",
                            "rawdesc": "String to hash.",
                            "start": [
                                87,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n@*param* `hashFunction` — Hash algorithm to use.\n\n@*param* `string` — String to hash.\n\n@*return* `rawdigest` — Raw message digest string.\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                    "finish": [
                        87,
                        49
                    ],
                    "rawdesc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                    "returns": [
                        {
                            "desc": "Raw message digest string.",
                            "name": "rawdigest",
                            "rawdesc": "Raw message digest string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.hash(hashFunction: \"md5\"|\"sha1\"|\"sha224\"|\"sha256\"|\"sha384\"...(+1), string: string)\n  -> rawdigest: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    87,
                    23
                ],
                "name": "hash",
                "rawdesc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)\n\n\n---\n\n@*param* `datastring` — The byte string to copy.\n\n@*return* `bytedata` — The new Data object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The byte string to copy.",
                            "finish": [
                                101,
                                41
                            ],
                            "name": "datastring",
                            "rawdesc": "The byte string to copy.",
                            "start": [
                                101,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)\n\n\n---\n\n@*param* `datastring` — The byte string to copy.\n\n@*return* `bytedata` — The new Data object.",
                    "finish": [
                        101,
                        46
                    ],
                    "rawdesc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)",
                    "returns": [
                        {
                            "desc": "The new Data object.",
                            "name": "bytedata",
                            "rawdesc": "The new Data object.",
                            "type": "function.return",
                            "view": "love.ByteData"
                        }
                    ],
                    "start": [
                        101,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.newByteData(datastring: string)\n  -> bytedata: love.ByteData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    101,
                    30
                ],
                "name": "newByteData",
                "rawdesc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)",
                "start": [
                    101,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)\n\n@*param* `data` — The Data object to reference.\n\n@*param* `offset` — The offset of the subsection to reference, in bytes.\n\n@*param* `size` — The size in bytes of the subsection to reference.\n\n@*return* `view` — The new Data view.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Data object to reference.",
                            "finish": [
                                113,
                                35
                            ],
                            "name": "data",
                            "rawdesc": "The Data object to reference.",
                            "start": [
                                113,
                                31
                            ],
                            "type": "local",
                            "view": "love.Data"
                        },
                        {
                            "desc": "The offset of the subsection to reference, in bytes.",
                            "finish": [
                                113,
                                43
                            ],
                            "name": "offset",
                            "rawdesc": "The offset of the subsection to reference, in bytes.",
                            "start": [
                                113,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The size in bytes of the subsection to reference.",
                            "finish": [
                                113,
                                49
                            ],
                            "name": "size",
                            "rawdesc": "The size in bytes of the subsection to reference.",
                            "start": [
                                113,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)\n\n@*param* `data` — The Data object to reference.\n\n@*param* `offset` — The offset of the subsection to reference, in bytes.\n\n@*param* `size` — The size in bytes of the subsection to reference.\n\n@*return* `view` — The new Data view.",
                    "finish": [
                        113,
                        54
                    ],
                    "rawdesc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)",
                    "returns": [
                        {
                            "desc": "The new Data view.",
                            "name": "view",
                            "rawdesc": "The new Data view.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        113,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.newDataView(data: love.Data, offset: number, size: number)\n  -> view: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    113,
                    30
                ],
                "name": "newDataView",
                "rawdesc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)",
                "start": [
                    113,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `v1` — The first value (number, boolean, or string) to serialize.\n\n@*return* `data` — Data/string which contains the serialized data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the encoded data as.",
                            "finish": [
                                128,
                                33
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the encoded data as.",
                            "start": [
                                128,
                                24
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "finish": [
                                128,
                                41
                            ],
                            "name": "format",
                            "rawdesc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "start": [
                                128,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The first value (number, boolean, or string) to serialize.",
                            "finish": [
                                128,
                                45
                            ],
                            "name": "v1",
                            "rawdesc": "The first value (number, boolean, or string) to serialize.",
                            "start": [
                                128,
                                43
                            ],
                            "type": "local",
                            "view": "boolean|string|number"
                        },
                        {
                            "finish": [
                                128,
                                50
                            ],
                            "start": [
                                128,
                                47
                            ],
                            "type": "...",
                            "view": "boolean|string|number"
                        }
                    ],
                    "desc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `v1` — The first value (number, boolean, or string) to serialize.\n\n@*return* `data` — Data/string which contains the serialized data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "finish": [
                        128,
                        55
                    ],
                    "rawdesc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "returns": [
                        {
                            "desc": "Data/string which contains the serialized data.",
                            "name": "data",
                            "rawdesc": "Data/string which contains the serialized data.",
                            "type": "function.return",
                            "view": "string|love.Data"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.pack(container: \"data\"|\"string\", format: string, v1: boolean|string|number, ...boolean|string|number)\n  -> data: string|love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "pack",
                "rawdesc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "start": [
                    128,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)\n\n\n---\n\n@*param* `format` — A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `datastring` — A string containing the packed (serialized) data.\n\n@*param* `pos` — Where to start reading in the string. Negative values can be used to read relative from the end of the string.\n\n@*return* `v1` — The first value (number, boolean, or string) that was unpacked.\n\n@*return* `index` — The index of the first unread byte in the data string.",
                "extends": {
                    "args": [
                        {
                            "desc": "A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "finish": [
                                144,
                                32
                            ],
                            "name": "format",
                            "rawdesc": "A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "start": [
                                144,
                                26
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A string containing the packed (serialized) data.",
                            "finish": [
                                144,
                                44
                            ],
                            "name": "datastring",
                            "rawdesc": "A string containing the packed (serialized) data.",
                            "start": [
                                144,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Where to start reading in the string. Negative values can be used to read relative from the end of the string.",
                            "finish": [
                                144,
                                49
                            ],
                            "name": "pos",
                            "rawdesc": "Where to start reading in the string. Negative values can be used to read relative from the end of the string.",
                            "start": [
                                144,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)\n\n\n---\n\n@*param* `format` — A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `datastring` — A string containing the packed (serialized) data.\n\n@*param* `pos` — Where to start reading in the string. Negative values can be used to read relative from the end of the string.\n\n@*return* `v1` — The first value (number, boolean, or string) that was unpacked.\n\n@*return* `index` — The index of the first unread byte in the data string.",
                    "finish": [
                        144,
                        54
                    ],
                    "rawdesc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)",
                    "returns": [
                        {
                            "desc": "The first value (number, boolean, or string) that was unpacked.",
                            "name": "v1",
                            "rawdesc": "The first value (number, boolean, or string) that was unpacked.",
                            "type": "function.return",
                            "view": "boolean|string|number"
                        },
                        {
                            "desc": "The index of the first unread byte in the data string.",
                            "name": "index",
                            "rawdesc": "The index of the first unread byte in the data string.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        144,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.unpack(format: string, datastring: string, pos?: number)\n  -> v1: boolean|string|number\n  2. index: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    144,
                    25
                ],
                "name": "unpack",
                "rawdesc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)",
                "start": [
                    144,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data",
        "type": "type",
        "view": "love.data"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n@*param* `container` — What type to return the compressed data as.\n\n@*param* `format` — The format to use when compressing the string.\n\n@*param* `rawstring` — The raw (un-compressed) string to compress.\n\n@*param* `level` — The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.\n\n@*return* `compressedData` — CompressedData/string which contains the compressed version of rawstring.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the compressed data as.",
                            "finish": [
                                23,
                                37
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the compressed data as.",
                            "start": [
                                23,
                                28
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The format to use when compressing the string.",
                            "finish": [
                                23,
                                45
                            ],
                            "name": "format",
                            "rawdesc": "The format to use when compressing the string.",
                            "start": [
                                23,
                                39
                            ],
                            "type": "local",
                            "view": "\"deflate\"|\"gzip\"|\"lz4\"|\"zlib\""
                        },
                        {
                            "desc": "The raw (un-compressed) string to compress.",
                            "finish": [
                                23,
                                56
                            ],
                            "name": "rawstring",
                            "rawdesc": "The raw (un-compressed) string to compress.",
                            "start": [
                                23,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.",
                            "finish": [
                                23,
                                63
                            ],
                            "name": "level",
                            "rawdesc": "The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.",
                            "start": [
                                23,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n@*param* `container` — What type to return the compressed data as.\n\n@*param* `format` — The format to use when compressing the string.\n\n@*param* `rawstring` — The raw (un-compressed) string to compress.\n\n@*param* `level` — The level of compression to use, between 0 and 9. -1 indicates the default level. The meaning of this argument depends on the compression format being used.\n\n@*return* `compressedData` — CompressedData/string which contains the compressed version of rawstring.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                    "finish": [
                        23,
                        68
                    ],
                    "rawdesc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                    "returns": [
                        {
                            "desc": "CompressedData/string which contains the compressed version of rawstring.",
                            "name": "compressedData",
                            "rawdesc": "CompressedData/string which contains the compressed version of rawstring.",
                            "type": "function.return",
                            "view": "string|love.CompressedData"
                        }
                    ],
                    "start": [
                        23,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.compress(container: \"data\"|\"string\", format: \"deflate\"|\"gzip\"|\"lz4\"|\"zlib\", rawstring: string, level?: number)\n  -> compressedData: string|love.CompressedData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    23,
                    27
                ],
                "name": "compress",
                "rawdesc": "\nCompresses a string or data using a specific compression algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.compress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Compressed data formats.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompressedDataFormat)\n-- \nformat:\n    | \"lz4\" -- The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.\n    | \"zlib\" -- The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.\n    | \"gzip\" -- The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.\n    | \"deflate\" -- Raw DEFLATE-compressed data (no header).\n```",
                "start": [
                    23,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.compress",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n@*param* `container` — What type to return the decoded data as.\n\n@*param* `format` — The format of the input data.\n\n@*param* `sourceString` — The raw (encoded) data to decode.\n\n@*return* `decoded` — ByteData/string which contains the decoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the decoded data as.",
                            "finish": [
                                36,
                                35
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the decoded data as.",
                            "start": [
                                36,
                                26
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The format of the input data.",
                            "finish": [
                                36,
                                43
                            ],
                            "name": "format",
                            "rawdesc": "The format of the input data.",
                            "start": [
                                36,
                                37
                            ],
                            "type": "local",
                            "view": "\"base64\"|\"hex\""
                        },
                        {
                            "desc": "The raw (encoded) data to decode.",
                            "finish": [
                                36,
                                57
                            ],
                            "name": "sourceString",
                            "rawdesc": "The raw (encoded) data to decode.",
                            "start": [
                                36,
                                45
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n@*param* `container` — What type to return the decoded data as.\n\n@*param* `format` — The format of the input data.\n\n@*param* `sourceString` — The raw (encoded) data to decode.\n\n@*return* `decoded` — ByteData/string which contains the decoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "finish": [
                        36,
                        62
                    ],
                    "rawdesc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "returns": [
                        {
                            "desc": "ByteData/string which contains the decoded version of source.",
                            "name": "decoded",
                            "rawdesc": "ByteData/string which contains the decoded version of source.",
                            "type": "function.return",
                            "view": "string|love.ByteData"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.decode(container: \"data\"|\"string\", format: \"base64\"|\"hex\", sourceString: string)\n  -> decoded: string|love.ByteData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    36,
                    25
                ],
                "name": "decode",
                "rawdesc": "\nDecode Data or a string from any of the EncodeFormats to Data or string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.decode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n@*param* `container` — What type to return the decompressed data as.\n\n@*param* `compressedData` — The compressed data to decompress.\n\n@*return* `decompressedData` — Data/string containing the raw decompressed data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the decompressed data as.",
                            "finish": [
                                49,
                                39
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the decompressed data as.",
                            "start": [
                                49,
                                30
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The compressed data to decompress.",
                            "finish": [
                                49,
                                55
                            ],
                            "name": "compressedData",
                            "rawdesc": "The compressed data to decompress.",
                            "start": [
                                49,
                                41
                            ],
                            "type": "local",
                            "view": "love.CompressedData"
                        }
                    ],
                    "desc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n@*param* `container` — What type to return the decompressed data as.\n\n@*param* `compressedData` — The compressed data to decompress.\n\n@*return* `decompressedData` — Data/string containing the raw decompressed data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "finish": [
                        49,
                        60
                    ],
                    "rawdesc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "returns": [
                        {
                            "desc": "Data/string containing the raw decompressed data.",
                            "name": "decompressedData",
                            "rawdesc": "Data/string containing the raw decompressed data.",
                            "type": "function.return",
                            "view": "string|love.Data"
                        }
                    ],
                    "start": [
                        49,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.decompress(container: \"data\"|\"string\", compressedData: love.CompressedData)\n  -> decompressedData: string|love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    49,
                    29
                ],
                "name": "decompress",
                "rawdesc": "\nDecompresses a CompressedData or previously compressed string or Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.decompress)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "start": [
                    49,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.decompress",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — The format of the output data.\n\n@*param* `sourceString` — The raw data to encode.\n\n@*param* `linelength` — The maximum line length of the output. Only supported for base64, ignored if 0.\n\n@*return* `encoded` — ByteData/string which contains the encoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the encoded data as.",
                            "finish": [
                                63,
                                35
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the encoded data as.",
                            "start": [
                                63,
                                26
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "The format of the output data.",
                            "finish": [
                                63,
                                43
                            ],
                            "name": "format",
                            "rawdesc": "The format of the output data.",
                            "start": [
                                63,
                                37
                            ],
                            "type": "local",
                            "view": "\"base64\"|\"hex\""
                        },
                        {
                            "desc": "The raw data to encode.",
                            "finish": [
                                63,
                                57
                            ],
                            "name": "sourceString",
                            "rawdesc": "The raw data to encode.",
                            "start": [
                                63,
                                45
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The maximum line length of the output. Only supported for base64, ignored if 0.",
                            "finish": [
                                63,
                                69
                            ],
                            "name": "linelength",
                            "rawdesc": "The maximum line length of the output. Only supported for base64, ignored if 0.",
                            "start": [
                                63,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — The format of the output data.\n\n@*param* `sourceString` — The raw data to encode.\n\n@*param* `linelength` — The maximum line length of the output. Only supported for base64, ignored if 0.\n\n@*return* `encoded` — ByteData/string which contains the encoded version of source.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "finish": [
                        63,
                        74
                    ],
                    "rawdesc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                    "returns": [
                        {
                            "desc": "ByteData/string which contains the encoded version of source.",
                            "name": "encoded",
                            "rawdesc": "ByteData/string which contains the encoded version of source.",
                            "type": "function.return",
                            "view": "string|love.ByteData"
                        }
                    ],
                    "start": [
                        63,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.encode(container: \"data\"|\"string\", format: \"base64\"|\"hex\", sourceString: string, linelength?: number)\n  -> encoded: string|love.ByteData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    63,
                    25
                ],
                "name": "encode",
                "rawdesc": "\nEncode Data or a string to a Data or string in one of the EncodeFormats.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.encode)\n\n\n---\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n\n-- \n-- Encoding format used to encode or decode data.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/EncodeFormat)\n-- \nformat:\n    | \"base64\" -- Encode/decode data as base64 binary-to-text encoding.\n    | \"hex\" -- Encode/decode data as hexadecimal string.\n```",
                "start": [
                    63,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.encode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*return* `size` — The size in bytes that the packed data will use.",
                "extends": {
                    "args": [
                        {
                            "desc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "finish": [
                                75,
                                39
                            ],
                            "name": "format",
                            "rawdesc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "start": [
                                75,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*return* `size` — The size in bytes that the packed data will use.",
                    "finish": [
                        75,
                        44
                    ],
                    "rawdesc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)",
                    "returns": [
                        {
                            "desc": "The size in bytes that the packed data will use.",
                            "name": "size",
                            "rawdesc": "The size in bytes that the packed data will use.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.getPackedSize(format: string)\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    75,
                    32
                ],
                "name": "getPackedSize",
                "rawdesc": "\nGets the size in bytes that a given format used with love.data.pack will use.\n\nThis function behaves the same as Lua 5.3's string.packsize.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.getPackedSize)",
                "start": [
                    75,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.getPackedSize",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n@*param* `hashFunction` — Hash algorithm to use.\n\n@*param* `string` — String to hash.\n\n@*return* `rawdigest` — Raw message digest string.\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Hash algorithm to use.",
                            "finish": [
                                87,
                                36
                            ],
                            "name": "hashFunction",
                            "rawdesc": "Hash algorithm to use.",
                            "start": [
                                87,
                                24
                            ],
                            "type": "local",
                            "view": "\"md5\"|\"sha1\"|\"sha224\"|\"sha256\"|\"sha384\"...(+1)"
                        },
                        {
                            "desc": "String to hash.",
                            "finish": [
                                87,
                                44
                            ],
                            "name": "string",
                            "rawdesc": "String to hash.",
                            "start": [
                                87,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n@*param* `hashFunction` — Hash algorithm to use.\n\n@*param* `string` — String to hash.\n\n@*return* `rawdigest` — Raw message digest string.\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                    "finish": [
                        87,
                        49
                    ],
                    "rawdesc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                    "returns": [
                        {
                            "desc": "Raw message digest string.",
                            "name": "rawdigest",
                            "rawdesc": "Raw message digest string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.hash(hashFunction: \"md5\"|\"sha1\"|\"sha224\"|\"sha256\"|\"sha384\"...(+1), string: string)\n  -> rawdigest: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    87,
                    23
                ],
                "name": "hash",
                "rawdesc": "\nCompute the message digest of a string using a specified hash algorithm.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.hash)\n\n\n---\n\n```lua\n-- \n-- Hash algorithm of love.data.hash.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HashFunction)\n-- \nhashFunction:\n    | \"md5\" -- MD5 hash algorithm (16 bytes).\n    | \"sha1\" -- SHA1 hash algorithm (20 bytes).\n    | \"sha224\" -- SHA2 hash algorithm with message digest size of 224 bits (28 bytes).\n    | \"sha256\" -- SHA2 hash algorithm with message digest size of 256 bits (32 bytes).\n    | \"sha384\" -- SHA2 hash algorithm with message digest size of 384 bits (48 bytes).\n    | \"sha512\" -- SHA2 hash algorithm with message digest size of 512 bits (64 bytes).\n```",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.hash",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)\n\n\n---\n\n@*param* `datastring` — The byte string to copy.\n\n@*return* `bytedata` — The new Data object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The byte string to copy.",
                            "finish": [
                                101,
                                41
                            ],
                            "name": "datastring",
                            "rawdesc": "The byte string to copy.",
                            "start": [
                                101,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)\n\n\n---\n\n@*param* `datastring` — The byte string to copy.\n\n@*return* `bytedata` — The new Data object.",
                    "finish": [
                        101,
                        46
                    ],
                    "rawdesc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)",
                    "returns": [
                        {
                            "desc": "The new Data object.",
                            "name": "bytedata",
                            "rawdesc": "The new Data object.",
                            "type": "function.return",
                            "view": "love.ByteData"
                        }
                    ],
                    "start": [
                        101,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.newByteData(datastring: string)\n  -> bytedata: love.ByteData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    101,
                    30
                ],
                "name": "newByteData",
                "rawdesc": "\nCreates a new Data object containing arbitrary bytes.\n\nData:getPointer along with LuaJIT's FFI can be used to manipulate the contents of the ByteData object after it has been created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newByteData)",
                "start": [
                    101,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.newByteData",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)\n\n@*param* `data` — The Data object to reference.\n\n@*param* `offset` — The offset of the subsection to reference, in bytes.\n\n@*param* `size` — The size in bytes of the subsection to reference.\n\n@*return* `view` — The new Data view.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Data object to reference.",
                            "finish": [
                                113,
                                35
                            ],
                            "name": "data",
                            "rawdesc": "The Data object to reference.",
                            "start": [
                                113,
                                31
                            ],
                            "type": "local",
                            "view": "love.Data"
                        },
                        {
                            "desc": "The offset of the subsection to reference, in bytes.",
                            "finish": [
                                113,
                                43
                            ],
                            "name": "offset",
                            "rawdesc": "The offset of the subsection to reference, in bytes.",
                            "start": [
                                113,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The size in bytes of the subsection to reference.",
                            "finish": [
                                113,
                                49
                            ],
                            "name": "size",
                            "rawdesc": "The size in bytes of the subsection to reference.",
                            "start": [
                                113,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)\n\n@*param* `data` — The Data object to reference.\n\n@*param* `offset` — The offset of the subsection to reference, in bytes.\n\n@*param* `size` — The size in bytes of the subsection to reference.\n\n@*return* `view` — The new Data view.",
                    "finish": [
                        113,
                        54
                    ],
                    "rawdesc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)",
                    "returns": [
                        {
                            "desc": "The new Data view.",
                            "name": "view",
                            "rawdesc": "The new Data view.",
                            "type": "function.return",
                            "view": "love.Data"
                        }
                    ],
                    "start": [
                        113,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.newDataView(data: love.Data, offset: number, size: number)\n  -> view: love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    113,
                    30
                ],
                "name": "newDataView",
                "rawdesc": "\nCreates a new Data referencing a subsection of an existing Data object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.newDataView)",
                "start": [
                    113,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.newDataView",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `v1` — The first value (number, boolean, or string) to serialize.\n\n@*return* `data` — Data/string which contains the serialized data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "What type to return the encoded data as.",
                            "finish": [
                                128,
                                33
                            ],
                            "name": "container",
                            "rawdesc": "What type to return the encoded data as.",
                            "start": [
                                128,
                                24
                            ],
                            "type": "local",
                            "view": "\"data\"|\"string\""
                        },
                        {
                            "desc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "finish": [
                                128,
                                41
                            ],
                            "name": "format",
                            "rawdesc": "A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "start": [
                                128,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The first value (number, boolean, or string) to serialize.",
                            "finish": [
                                128,
                                45
                            ],
                            "name": "v1",
                            "rawdesc": "The first value (number, boolean, or string) to serialize.",
                            "start": [
                                128,
                                43
                            ],
                            "type": "local",
                            "view": "boolean|string|number"
                        },
                        {
                            "finish": [
                                128,
                                50
                            ],
                            "start": [
                                128,
                                47
                            ],
                            "type": "...",
                            "view": "boolean|string|number"
                        }
                    ],
                    "desc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n@*param* `container` — What type to return the encoded data as.\n\n@*param* `format` — A string determining how the values are packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `v1` — The first value (number, boolean, or string) to serialize.\n\n@*return* `data` — Data/string which contains the serialized data.\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "finish": [
                        128,
                        55
                    ],
                    "rawdesc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                    "returns": [
                        {
                            "desc": "Data/string which contains the serialized data.",
                            "name": "data",
                            "rawdesc": "Data/string which contains the serialized data.",
                            "type": "function.return",
                            "view": "string|love.Data"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.pack(container: \"data\"|\"string\", format: string, v1: boolean|string|number, ...boolean|string|number)\n  -> data: string|love.Data"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    128,
                    23
                ],
                "name": "pack",
                "rawdesc": "\nPacks (serializes) simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.pack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.pack)\n\n\n```lua\n-- \n-- Return type of various data-returning functions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/ContainerType)\n-- \ncontainer:\n    | \"data\" -- Return type is ByteData.\n    | \"string\" -- Return type is string.\n```",
                "start": [
                    128,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.pack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)\n\n\n---\n\n@*param* `format` — A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `datastring` — A string containing the packed (serialized) data.\n\n@*param* `pos` — Where to start reading in the string. Negative values can be used to read relative from the end of the string.\n\n@*return* `v1` — The first value (number, boolean, or string) that was unpacked.\n\n@*return* `index` — The index of the first unread byte in the data string.",
                "extends": {
                    "args": [
                        {
                            "desc": "A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "finish": [
                                144,
                                32
                            ],
                            "name": "format",
                            "rawdesc": "A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.",
                            "start": [
                                144,
                                26
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A string containing the packed (serialized) data.",
                            "finish": [
                                144,
                                44
                            ],
                            "name": "datastring",
                            "rawdesc": "A string containing the packed (serialized) data.",
                            "start": [
                                144,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Where to start reading in the string. Negative values can be used to read relative from the end of the string.",
                            "finish": [
                                144,
                                49
                            ],
                            "name": "pos",
                            "rawdesc": "Where to start reading in the string. Negative values can be used to read relative from the end of the string.",
                            "start": [
                                144,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)\n\n\n---\n\n@*param* `format` — A string determining how the values were packed. Follows the rules of Lua 5.3's string.pack format strings.\n\n@*param* `datastring` — A string containing the packed (serialized) data.\n\n@*param* `pos` — Where to start reading in the string. Negative values can be used to read relative from the end of the string.\n\n@*return* `v1` — The first value (number, boolean, or string) that was unpacked.\n\n@*return* `index` — The index of the first unread byte in the data string.",
                    "finish": [
                        144,
                        54
                    ],
                    "rawdesc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)",
                    "returns": [
                        {
                            "desc": "The first value (number, boolean, or string) that was unpacked.",
                            "name": "v1",
                            "rawdesc": "The first value (number, boolean, or string) that was unpacked.",
                            "type": "function.return",
                            "view": "boolean|string|number"
                        },
                        {
                            "desc": "The index of the first unread byte in the data string.",
                            "name": "index",
                            "rawdesc": "The index of the first unread byte in the data string.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        144,
                        0
                    ],
                    "type": "function",
                    "view": "function love.data.unpack(format: string, datastring: string, pos?: number)\n  -> v1: boolean|string|number\n  2. index: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/data.lua",
                "finish": [
                    144,
                    25
                ],
                "name": "unpack",
                "rawdesc": "\nUnpacks (deserializes) a byte-string or Data into simple Lua values.\n\nThis function behaves the same as Lua 5.3's string.unpack.\n\n\n[Open in Browser](https://love2d.org/wiki/love.data.unpack)",
                "start": [
                    144,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.data.unpack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a directory is dragged and dropped onto the window.\n",
                "finish": [
                    157,
                    49
                ],
                "rawdesc": "\nCallback function triggered when a directory is dragged and dropped onto the window.\n",
                "start": [
                    157,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(path: string)"
            }
        ],
        "fields": [],
        "name": "love.directorydropped",
        "type": "type",
        "view": "love.directorydropped"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when the device display orientation changed, for example, user rotated their phone 180 degrees.\n",
                "finish": [
                    162,
                    86
                ],
                "rawdesc": "\nCalled when the device display orientation changed, for example, user rotated their phone 180 degrees.\n",
                "start": [
                    162,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(index: number, orientation: \"landscape\"|\"landscapeflipped\"|\"portrait\"|\"portraitflipped\"|\"unknown\")"
            }
        ],
        "fields": [],
        "name": "love.displayrotated",
        "type": "type",
        "view": "love.displayrotated"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function used to draw on the screen every frame.\n",
                "finish": [
                    167,
                    25
                ],
                "rawdesc": "\nCallback function used to draw on the screen every frame.\n",
                "start": [
                    167,
                    10
                ],
                "type": "doc.alias",
                "view": "fun()"
            }
        ],
        "fields": [],
        "name": "love.draw",
        "type": "type",
        "view": "love.draw"
    },
    {
        "defines": [
            {
                "desc": "\nThe error handler, used to display error messages.\n",
                "finish": [
                    172,
                    53
                ],
                "rawdesc": "\nThe error handler, used to display error messages.\n",
                "start": [
                    172,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(msg: string):function"
            }
        ],
        "fields": [],
        "name": "love.errorhandler",
        "type": "type",
        "view": "love.errorhandler"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                "extends": {
                    "desc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.event"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "event",
                "rawdesc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.event",
                "visible": "public"
            }
        ],
        "name": "love.event",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nManages events, like keypresses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.event",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                "extends": {
                    "args": [],
                    "desc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                    "finish": [
                        17,
                        31
                    ],
                    "rawdesc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                    "start": [
                        17,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    17,
                    25
                ],
                "name": "clear",
                "rawdesc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                "start": [
                    17,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)\n\n@*return* `i` — Iterator function usable in a for loop.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)\n\n@*return* `i` — Iterator function usable in a for loop.",
                    "finish": [
                        26,
                        30
                    ],
                    "rawdesc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)",
                    "returns": [
                        {
                            "desc": "Iterator function usable in a for loop.",
                            "name": "i",
                            "rawdesc": "Iterator function usable in a for loop.",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.poll()\n  -> i: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    26,
                    24
                ],
                "name": "poll",
                "rawdesc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                "extends": {
                    "args": [],
                    "desc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                    "finish": [
                        40,
                        30
                    ],
                    "rawdesc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                    "start": [
                        40,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.pump()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    40,
                    24
                ],
                "name": "pump",
                "rawdesc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                "start": [
                    40,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n@*param* `n` — The name of the event.\n\n@*param* `a` — First event argument.\n\n@*param* `b` — Second event argument.\n\n@*param* `c` — Third event argument.\n\n@*param* `d` — Fourth event argument.\n\n@*param* `e` — Fifth event argument.\n\n@*param* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the event.",
                            "finish": [
                                58,
                                26
                            ],
                            "name": "n",
                            "rawdesc": "The name of the event.",
                            "start": [
                                58,
                                25
                            ],
                            "type": "local",
                            "view": "\"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)"
                        },
                        {
                            "desc": "First event argument.",
                            "finish": [
                                58,
                                29
                            ],
                            "name": "a",
                            "rawdesc": "First event argument.",
                            "start": [
                                58,
                                28
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Second event argument.",
                            "finish": [
                                58,
                                32
                            ],
                            "name": "b",
                            "rawdesc": "Second event argument.",
                            "start": [
                                58,
                                31
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Third event argument.",
                            "finish": [
                                58,
                                35
                            ],
                            "name": "c",
                            "rawdesc": "Third event argument.",
                            "start": [
                                58,
                                34
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Fourth event argument.",
                            "finish": [
                                58,
                                38
                            ],
                            "name": "d",
                            "rawdesc": "Fourth event argument.",
                            "start": [
                                58,
                                37
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Fifth event argument.",
                            "finish": [
                                58,
                                41
                            ],
                            "name": "e",
                            "rawdesc": "Fifth event argument.",
                            "start": [
                                58,
                                40
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Sixth event argument.",
                            "finish": [
                                58,
                                44
                            ],
                            "name": "f",
                            "rawdesc": "Sixth event argument.",
                            "start": [
                                58,
                                43
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                58,
                                49
                            ],
                            "start": [
                                58,
                                46
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n@*param* `n` — The name of the event.\n\n@*param* `a` — First event argument.\n\n@*param* `b` — Second event argument.\n\n@*param* `c` — Third event argument.\n\n@*param* `d` — Fourth event argument.\n\n@*param* `e` — Fifth event argument.\n\n@*param* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "finish": [
                        58,
                        54
                    ],
                    "rawdesc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.push(n: \"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32), a?: any, b?: any, c?: any, d?: any, e?: any, f?: any, ...any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    58,
                    24
                ],
                "name": "push",
                "rawdesc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)\n\n\n---\n\n@*param* `exitstatus` — The program exit status to use when closing the application.",
                "extends": {
                    "args": [
                        {
                            "desc": "The program exit status to use when closing the application.",
                            "finish": [
                                70,
                                35
                            ],
                            "name": "exitstatus",
                            "rawdesc": "The program exit status to use when closing the application.",
                            "start": [
                                70,
                                25
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)\n\n\n---\n\n@*param* `exitstatus` — The program exit status to use when closing the application.",
                    "finish": [
                        70,
                        40
                    ],
                    "rawdesc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)",
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.quit(exitstatus?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    70,
                    24
                ],
                "name": "quit",
                "rawdesc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)",
                "start": [
                    70,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n@*return* `n` — The name of event.\n\n@*return* `a` — First event argument.\n\n@*return* `b` — Second event argument.\n\n@*return* `c` — Third event argument.\n\n@*return* `d` — Fourth event argument.\n\n@*return* `e` — Fifth event argument.\n\n@*return* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "extends": {
                    "args": [],
                    "desc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n@*return* `n` — The name of event.\n\n@*return* `a` — First event argument.\n\n@*return* `b` — Second event argument.\n\n@*return* `c` — Third event argument.\n\n@*return* `d` — Fourth event argument.\n\n@*return* `e` — Fifth event argument.\n\n@*return* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "finish": [
                        85,
                        30
                    ],
                    "rawdesc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "returns": [
                        {
                            "desc": "The name of event.",
                            "name": "n",
                            "rawdesc": "The name of event.",
                            "type": "function.return",
                            "view": "\"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)"
                        },
                        {
                            "desc": "First event argument.",
                            "name": "a",
                            "rawdesc": "First event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Second event argument.",
                            "name": "b",
                            "rawdesc": "Second event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Third event argument.",
                            "name": "c",
                            "rawdesc": "Third event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Fourth event argument.",
                            "name": "d",
                            "rawdesc": "Fourth event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Fifth event argument.",
                            "name": "e",
                            "rawdesc": "Fifth event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Sixth event argument.",
                            "name": "f",
                            "rawdesc": "Sixth event argument.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        85,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.wait()\n  -> n: \"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)\n  2. a: any\n  3. b: any\n  4. c: any\n  5. d: any\n  6. e: any\n  7. f: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    85,
                    24
                ],
                "name": "wait",
                "rawdesc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "start": [
                    85,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event",
        "type": "type",
        "view": "love.event"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                "extends": {
                    "args": [],
                    "desc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                    "finish": [
                        17,
                        31
                    ],
                    "rawdesc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                    "start": [
                        17,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    17,
                    25
                ],
                "name": "clear",
                "rawdesc": "\nClears the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.clear)",
                "start": [
                    17,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event.clear",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)\n\n@*return* `i` — Iterator function usable in a for loop.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)\n\n@*return* `i` — Iterator function usable in a for loop.",
                    "finish": [
                        26,
                        30
                    ],
                    "rawdesc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)",
                    "returns": [
                        {
                            "desc": "Iterator function usable in a for loop.",
                            "name": "i",
                            "rawdesc": "Iterator function usable in a for loop.",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.poll()\n  -> i: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    26,
                    24
                ],
                "name": "poll",
                "rawdesc": "\nReturns an iterator for messages in the event queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.poll)",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event.poll",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                "extends": {
                    "args": [],
                    "desc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                    "finish": [
                        40,
                        30
                    ],
                    "rawdesc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                    "start": [
                        40,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.pump()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    40,
                    24
                ],
                "name": "pump",
                "rawdesc": "\nPump events into the event queue.\n\nThis is a low-level function, and is usually not called by the user, but by love.run.\n\nNote that this does need to be called for any OS to think you're still running,\n\nand if you want to handle OS-generated events at all (think callbacks).\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.pump)",
                "start": [
                    40,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event.pump",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n@*param* `n` — The name of the event.\n\n@*param* `a` — First event argument.\n\n@*param* `b` — Second event argument.\n\n@*param* `c` — Third event argument.\n\n@*param* `d` — Fourth event argument.\n\n@*param* `e` — Fifth event argument.\n\n@*param* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the event.",
                            "finish": [
                                58,
                                26
                            ],
                            "name": "n",
                            "rawdesc": "The name of the event.",
                            "start": [
                                58,
                                25
                            ],
                            "type": "local",
                            "view": "\"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)"
                        },
                        {
                            "desc": "First event argument.",
                            "finish": [
                                58,
                                29
                            ],
                            "name": "a",
                            "rawdesc": "First event argument.",
                            "start": [
                                58,
                                28
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Second event argument.",
                            "finish": [
                                58,
                                32
                            ],
                            "name": "b",
                            "rawdesc": "Second event argument.",
                            "start": [
                                58,
                                31
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Third event argument.",
                            "finish": [
                                58,
                                35
                            ],
                            "name": "c",
                            "rawdesc": "Third event argument.",
                            "start": [
                                58,
                                34
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Fourth event argument.",
                            "finish": [
                                58,
                                38
                            ],
                            "name": "d",
                            "rawdesc": "Fourth event argument.",
                            "start": [
                                58,
                                37
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Fifth event argument.",
                            "finish": [
                                58,
                                41
                            ],
                            "name": "e",
                            "rawdesc": "Fifth event argument.",
                            "start": [
                                58,
                                40
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "desc": "Sixth event argument.",
                            "finish": [
                                58,
                                44
                            ],
                            "name": "f",
                            "rawdesc": "Sixth event argument.",
                            "start": [
                                58,
                                43
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                58,
                                49
                            ],
                            "start": [
                                58,
                                46
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n@*param* `n` — The name of the event.\n\n@*param* `a` — First event argument.\n\n@*param* `b` — Second event argument.\n\n@*param* `c` — Third event argument.\n\n@*param* `d` — Fourth event argument.\n\n@*param* `e` — Fifth event argument.\n\n@*param* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "finish": [
                        58,
                        54
                    ],
                    "rawdesc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.push(n: \"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32), a?: any, b?: any, c?: any, d?: any, e?: any, f?: any, ...any)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    58,
                    24
                ],
                "name": "push",
                "rawdesc": "\nAdds an event to the event queue.\n\nFrom 0.10.0 onwards, you may pass an arbitrary amount of arguments with this function, though the default callbacks don't ever use more than six.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.push)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event.push",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)\n\n\n---\n\n@*param* `exitstatus` — The program exit status to use when closing the application.",
                "extends": {
                    "args": [
                        {
                            "desc": "The program exit status to use when closing the application.",
                            "finish": [
                                70,
                                35
                            ],
                            "name": "exitstatus",
                            "rawdesc": "The program exit status to use when closing the application.",
                            "start": [
                                70,
                                25
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)\n\n\n---\n\n@*param* `exitstatus` — The program exit status to use when closing the application.",
                    "finish": [
                        70,
                        40
                    ],
                    "rawdesc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)",
                    "start": [
                        70,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.quit(exitstatus?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    70,
                    24
                ],
                "name": "quit",
                "rawdesc": "\nAdds the quit event to the queue.\n\nThe quit event is a signal for the event handler to close LÖVE. It's possible to abort the exit process with the love.quit callback.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.quit)",
                "start": [
                    70,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event.quit",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n@*return* `n` — The name of event.\n\n@*return* `a` — First event argument.\n\n@*return* `b` — Second event argument.\n\n@*return* `c` — Third event argument.\n\n@*return* `d` — Fourth event argument.\n\n@*return* `e` — Fifth event argument.\n\n@*return* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "extends": {
                    "args": [],
                    "desc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n@*return* `n` — The name of event.\n\n@*return* `a` — First event argument.\n\n@*return* `b` — Second event argument.\n\n@*return* `c` — Third event argument.\n\n@*return* `d` — Fourth event argument.\n\n@*return* `e` — Fifth event argument.\n\n@*return* `f` — Sixth event argument.\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "finish": [
                        85,
                        30
                    ],
                    "rawdesc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                    "returns": [
                        {
                            "desc": "The name of event.",
                            "name": "n",
                            "rawdesc": "The name of event.",
                            "type": "function.return",
                            "view": "\"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)"
                        },
                        {
                            "desc": "First event argument.",
                            "name": "a",
                            "rawdesc": "First event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Second event argument.",
                            "name": "b",
                            "rawdesc": "Second event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Third event argument.",
                            "name": "c",
                            "rawdesc": "Third event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Fourth event argument.",
                            "name": "d",
                            "rawdesc": "Fourth event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Fifth event argument.",
                            "name": "e",
                            "rawdesc": "Fifth event argument.",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "desc": "Sixth event argument.",
                            "name": "f",
                            "rawdesc": "Sixth event argument.",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        85,
                        0
                    ],
                    "type": "function",
                    "view": "function love.event.wait()\n  -> n: \"directorydropped\"|\"f\"|\"filedropped\"|\"focus\"|\"gamepadaxis\"...(+32)\n  2. a: any\n  3. b: any\n  4. c: any\n  5. d: any\n  6. e: any\n  7. f: any"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/event.lua",
                "finish": [
                    85,
                    24
                ],
                "name": "wait",
                "rawdesc": "\nLike love.event.poll(), but blocks until there is an event in the queue.\n\n\n[Open in Browser](https://love2d.org/wiki/love.event.wait)\n\n\n```lua\n-- \n-- Arguments to love.event.push() and the like.\n-- \n-- Since 0.8.0, event names are no longer abbreviated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Event)\n-- \nn:\n    | \"focus\" -- Window focus gained or lost\n    | \"joystickpressed\" -- Joystick pressed\n    | \"joystickreleased\" -- Joystick released\n    | \"keypressed\" -- Key pressed\n    | \"keyreleased\" -- Key released\n    | \"mousepressed\" -- Mouse pressed\n    | \"mousereleased\" -- Mouse released\n    | \"quit\" -- Quit\n    | \"resize\" -- Window size changed by the user\n    | \"visible\" -- Window is minimized or un-minimized by the user\n    | \"mousefocus\" -- Window mouse focus gained or lost\n    | \"threaderror\" -- A Lua error has occurred in a thread\n    | \"joystickadded\" -- Joystick connected\n    | \"joystickremoved\" -- Joystick disconnected\n    | \"joystickaxis\" -- Joystick axis motion\n    | \"joystickhat\" -- Joystick hat pressed\n    | \"gamepadpressed\" -- Joystick's virtual gamepad button pressed\n    | \"gamepadreleased\" -- Joystick's virtual gamepad button released\n    | \"gamepadaxis\" -- Joystick's virtual gamepad axis moved\n    | \"textinput\" -- User entered text\n    | \"mousemoved\" -- Mouse position changed\n    | \"lowmemory\" -- Running out of memory on mobile devices system\n    | \"textedited\" -- Candidate text for an IME changed\n    | \"wheelmoved\" -- Mouse wheel moved\n    | \"touchpressed\" -- Touch screen touched\n    | \"touchreleased\" -- Touch screen stop touching\n    | \"touchmoved\" -- Touch press moved inside touch screen\n    | \"directorydropped\" -- Directory is dragged and dropped onto the window\n    | \"filedropped\" -- File is dragged and dropped onto the window.\n    | \"jp\" -- Joystick pressed\n    | \"jr\" -- Joystick released\n    | \"kp\" -- Key pressed\n    | \"kr\" -- Key released\n    | \"mp\" -- Mouse pressed\n    | \"mr\" -- Mouse released\n    | \"q\" -- Quit\n    | \"f\" -- Window focus gained or lost\n```",
                "start": [
                    85,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.event.wait",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a file is dragged and dropped onto the window.\n",
                "finish": [
                    177,
                    54
                ],
                "rawdesc": "\nCallback function triggered when a file is dragged and dropped onto the window.\n",
                "start": [
                    177,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(file: love.DroppedFile)"
            }
        ],
        "fields": [],
        "name": "love.filedropped",
        "type": "type",
        "view": "love.filedropped"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    8,
                    25
                ],
                "rawdesc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.filesystem",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to append to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — True if the operation was successful, or nil if there was an error.\n\n@*return* `errormsg` — The error message on failure.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                23,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                23,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The string data to append to the file.",
                            "finish": [
                                23,
                                42
                            ],
                            "name": "data",
                            "rawdesc": "The string data to append to the file.",
                            "start": [
                                23,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to write.",
                            "finish": [
                                23,
                                48
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to write.",
                            "start": [
                                23,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to append to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — True if the operation was successful, or nil if there was an error.\n\n@*return* `errormsg` — The error message on failure.",
                    "finish": [
                        23,
                        53
                    ],
                    "rawdesc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)",
                    "returns": [
                        {
                            "desc": "True if the operation was successful, or nil if there was an error.",
                            "name": "success",
                            "rawdesc": "True if the operation was successful, or nil if there was an error.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error message on failure.",
                            "name": "errormsg",
                            "rawdesc": "The error message on failure.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        23,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.append(name: string, data: string, size?: number)\n  -> success: boolean\n  2. errormsg: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    23,
                    31
                ],
                "name": "append",
                "rawdesc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)",
                "start": [
                    23,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)\n\n@*return* `enable` — Whether love.filesystem follows symbolic links.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)\n\n@*return* `enable` — Whether love.filesystem follows symbolic links.",
                    "finish": [
                        32,
                        49
                    ],
                    "rawdesc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)",
                    "returns": [
                        {
                            "desc": "Whether love.filesystem follows symbolic links.",
                            "name": "enable",
                            "rawdesc": "Whether love.filesystem follows symbolic links.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.areSymlinksEnabled()\n  -> enable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    32,
                    43
                ],
                "name": "areSymlinksEnabled",
                "rawdesc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)\n\n@*param* `name` — The directory to create.\n\n@*return* `success` — True if the directory was created, false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "The directory to create.",
                            "finish": [
                                44,
                                45
                            ],
                            "name": "name",
                            "rawdesc": "The directory to create.",
                            "start": [
                                44,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)\n\n@*param* `name` — The directory to create.\n\n@*return* `success` — True if the directory was created, false if not.",
                    "finish": [
                        44,
                        50
                    ],
                    "rawdesc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)",
                    "returns": [
                        {
                            "desc": "True if the directory was created, false if not.",
                            "name": "success",
                            "rawdesc": "True if the directory was created, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        44,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.createDirectory(name: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    44,
                    40
                ],
                "name": "createDirectory",
                "rawdesc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)",
                "start": [
                    44,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)\n\n@*return* `path` — The path of the application data directory",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)\n\n@*return* `path` — The path of the application data directory",
                    "finish": [
                        53,
                        50
                    ],
                    "rawdesc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)",
                    "returns": [
                        {
                            "desc": "The path of the application data directory",
                            "name": "path",
                            "rawdesc": "The path of the application data directory",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        53,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getAppdataDirectory()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    53,
                    44
                ],
                "name": "getAppdataDirectory",
                "rawdesc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)",
                "start": [
                    53,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check for c libraries in love's filesystem.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check for c libraries in love's filesystem.",
                    "finish": [
                        66,
                        46
                    ],
                    "rawdesc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)",
                    "returns": [
                        {
                            "desc": "The paths that the ''require'' function will check for c libraries in love's filesystem.",
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check for c libraries in love's filesystem.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        66,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getCRequirePath()\n  -> paths: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    66,
                    40
                ],
                "name": "getCRequirePath",
                "rawdesc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)",
                "start": [
                    66,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)\n\n\n---\n\n@*param* `dir` — The directory.\n\n@*return* `files` — A sequence with the names of all files and subdirectories as strings.",
                "extends": {
                    "args": [
                        {
                            "desc": "The directory.",
                            "finish": [
                                79,
                                46
                            ],
                            "name": "dir",
                            "rawdesc": "The directory.",
                            "start": [
                                79,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)\n\n\n---\n\n@*param* `dir` — The directory.\n\n@*return* `files` — A sequence with the names of all files and subdirectories as strings.",
                    "finish": [
                        79,
                        51
                    ],
                    "rawdesc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)",
                    "returns": [
                        {
                            "desc": "A sequence with the names of all files and subdirectories as strings.",
                            "name": "files",
                            "rawdesc": "A sequence with the names of all files and subdirectories as strings.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getDirectoryItems(dir: string)\n  -> files: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    79,
                    42
                ],
                "name": "getDirectoryItems",
                "rawdesc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)\n\n@*return* `name` — The identity that is used as write directory.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)\n\n@*return* `name` — The identity that is used as write directory.",
                    "finish": [
                        90,
                        42
                    ],
                    "rawdesc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)",
                    "returns": [
                        {
                            "desc": "The identity that is used as write directory.",
                            "name": "name",
                            "rawdesc": "The identity that is used as write directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getIdentity()\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    90,
                    36
                ],
                "name": "getIdentity",
                "rawdesc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)",
                "start": [
                    90,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n@*param* `path` — The file or directory path to check.\n\n@*param* `filtertype` — If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.\n\n@*return* `info` — A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The file or directory path to check.",
                            "finish": [
                                103,
                                37
                            ],
                            "name": "path",
                            "rawdesc": "The file or directory path to check.",
                            "start": [
                                103,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.",
                            "finish": [
                                103,
                                49
                            ],
                            "name": "filtertype",
                            "rawdesc": "If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.",
                            "start": [
                                103,
                                39
                            ],
                            "type": "local",
                            "view": "(\"directory\"|\"file\"|\"other\"|\"symlink\")?"
                        }
                    ],
                    "desc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n@*param* `path` — The file or directory path to check.\n\n@*param* `filtertype` — If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.\n\n@*return* `info` — A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                    "finish": [
                        103,
                        54
                    ],
                    "rawdesc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                    "returns": [
                        {
                            "desc": "A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:",
                            "name": "info",
                            "rawdesc": "A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:",
                            "type": "function.return",
                            "view": "{ type: \"directory\"|\"file\"|\"other\"|\"symlink\", size: number, modtime: number }"
                        }
                    ],
                    "start": [
                        103,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getInfo(path: string, filtertype?: \"directory\"|\"file\"|\"other\"|\"symlink\")\n  -> info: { type: \"directory\"|\"file\"|\"other\"|\"symlink\", size: number, modtime: number }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    103,
                    32
                ],
                "name": "getInfo",
                "rawdesc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                "start": [
                    103,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)\n\n@*param* `filepath` — The filepath to get the directory of.\n\n@*return* `realdir` — The platform-specific full path of the directory containing the filepath.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to get the directory of.",
                            "finish": [
                                115,
                                50
                            ],
                            "name": "filepath",
                            "rawdesc": "The filepath to get the directory of.",
                            "start": [
                                115,
                                42
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)\n\n@*param* `filepath` — The filepath to get the directory of.\n\n@*return* `realdir` — The platform-specific full path of the directory containing the filepath.",
                    "finish": [
                        115,
                        55
                    ],
                    "rawdesc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)",
                    "returns": [
                        {
                            "desc": "The platform-specific full path of the directory containing the filepath.",
                            "name": "realdir",
                            "rawdesc": "The platform-specific full path of the directory containing the filepath.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        115,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getRealDirectory(filepath: string)\n  -> realdir: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    115,
                    41
                ],
                "name": "getRealDirectory",
                "rawdesc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)",
                "start": [
                    115,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                    "finish": [
                        128,
                        45
                    ],
                    "rawdesc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)",
                    "returns": [
                        {
                            "desc": "The paths that the ''require'' function will check in love's filesystem.",
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check in love's filesystem.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getRequirePath()\n  -> paths: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    128,
                    39
                ],
                "name": "getRequirePath",
                "rawdesc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)",
                "start": [
                    128,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)\n\n@*return* `dir` — The absolute path to the save directory.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)\n\n@*return* `dir` — The absolute path to the save directory.",
                    "finish": [
                        141,
                        47
                    ],
                    "rawdesc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)",
                    "returns": [
                        {
                            "desc": "The absolute path to the save directory.",
                            "name": "dir",
                            "rawdesc": "The absolute path to the save directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        141,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getSaveDirectory()\n  -> dir: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    141,
                    41
                ],
                "name": "getSaveDirectory",
                "rawdesc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)",
                "start": [
                    141,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)\n\n@*return* `path` — The full platform-dependent path of the .love file or directory.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)\n\n@*return* `path` — The full platform-dependent path of the .love file or directory.",
                    "finish": [
                        150,
                        40
                    ],
                    "rawdesc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)",
                    "returns": [
                        {
                            "desc": "The full platform-dependent path of the .love file or directory.",
                            "name": "path",
                            "rawdesc": "The full platform-dependent path of the .love file or directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        150,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getSource()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    150,
                    34
                ],
                "name": "getSource",
                "rawdesc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)",
                "start": [
                    150,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)\n\n@*return* `path` — The full platform-dependent path of the directory containing the .love file.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)\n\n@*return* `path` — The full platform-dependent path of the directory containing the .love file.",
                    "finish": [
                        161,
                        53
                    ],
                    "rawdesc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)",
                    "returns": [
                        {
                            "desc": "The full platform-dependent path of the directory containing the .love file.",
                            "name": "path",
                            "rawdesc": "The full platform-dependent path of the directory containing the .love file.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getSourceBaseDirectory()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    161,
                    47
                ],
                "name": "getSourceBaseDirectory",
                "rawdesc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)",
                "start": [
                    161,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)\n\n@*return* `path` — The path of the user's directory",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)\n\n@*return* `path` — The path of the user's directory",
                    "finish": [
                        170,
                        47
                    ],
                    "rawdesc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)",
                    "returns": [
                        {
                            "desc": "The path of the user's directory",
                            "name": "path",
                            "rawdesc": "The path of the user's directory",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getUserDirectory()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    170,
                    41
                ],
                "name": "getUserDirectory",
                "rawdesc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)",
                "start": [
                    170,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)\n\n@*return* `cwd` — The current working directory.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)\n\n@*return* `cwd` — The current working directory.",
                    "finish": [
                        179,
                        50
                    ],
                    "rawdesc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)",
                    "returns": [
                        {
                            "desc": "The current working directory.",
                            "name": "cwd",
                            "rawdesc": "The current working directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        179,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getWorkingDirectory()\n  -> cwd: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    179,
                    44
                ],
                "name": "getWorkingDirectory",
                "rawdesc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)",
                "start": [
                    179,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)\n\n@*param* `appname` — The name of the application binary, typically love.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the application binary, typically love.",
                            "finish": [
                                188,
                                37
                            ],
                            "name": "appname",
                            "rawdesc": "The name of the application binary, typically love.",
                            "start": [
                                188,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)\n\n@*param* `appname` — The name of the application binary, typically love.",
                    "finish": [
                        188,
                        42
                    ],
                    "rawdesc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)",
                    "start": [
                        188,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.init(appname: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    188,
                    29
                ],
                "name": "init",
                "rawdesc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)",
                "start": [
                    188,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)\n\n@*return* `fused` — True if the game is in fused mode, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)\n\n@*return* `fused` — True if the game is in fused mode, false otherwise.",
                    "finish": [
                        201,
                        38
                    ],
                    "rawdesc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)",
                    "returns": [
                        {
                            "desc": "True if the game is in fused mode, false otherwise.",
                            "name": "fused",
                            "rawdesc": "True if the game is in fused mode, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.isFused()\n  -> fused: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    201,
                    32
                ],
                "name": "isFused",
                "rawdesc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)\n\n@*param* `name` — The name (and path) of the file\n\n@*return* `iterator` — A function that iterates over all the lines in the file",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file",
                            "finish": [
                                211,
                                35
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file",
                            "start": [
                                211,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)\n\n@*param* `name` — The name (and path) of the file\n\n@*return* `iterator` — A function that iterates over all the lines in the file",
                    "finish": [
                        211,
                        40
                    ],
                    "rawdesc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)",
                    "returns": [
                        {
                            "desc": "A function that iterates over all the lines in the file",
                            "name": "iterator",
                            "rawdesc": "A function that iterates over all the lines in the file",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        211,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.lines(name: string)\n  -> iterator: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    211,
                    30
                ],
                "name": "lines",
                "rawdesc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)",
                "start": [
                    211,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)\n\n@*param* `name` — The name (and path) of the file.\n\n@*return* `chunk` — The loaded chunk.\n\n@*return* `errormsg` — The error message if file could not be opened.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                222,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                222,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)\n\n@*param* `name` — The name (and path) of the file.\n\n@*return* `chunk` — The loaded chunk.\n\n@*return* `errormsg` — The error message if file could not be opened.",
                    "finish": [
                        222,
                        39
                    ],
                    "rawdesc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)",
                    "returns": [
                        {
                            "desc": "The loaded chunk.",
                            "name": "chunk",
                            "rawdesc": "The loaded chunk.",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "desc": "The error message if file could not be opened.",
                            "name": "errormsg",
                            "rawdesc": "The error message if file could not be opened.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        222,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.load(name: string)\n  -> chunk: function\n  2. errormsg: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    222,
                    29
                ],
                "name": "load",
                "rawdesc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)",
                "start": [
                    222,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)\n\n\n---\n\n@*param* `archive` — The folder or zip file in the game's save directory to mount.\n\n@*param* `mountpoint` — The new path the archive will be mounted to.\n\n@*param* `appendToPath` — Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.\n\n@*return* `success` — True if the archive was successfully mounted, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "The folder or zip file in the game's save directory to mount.",
                            "finish": [
                                238,
                                38
                            ],
                            "name": "archive",
                            "rawdesc": "The folder or zip file in the game's save directory to mount.",
                            "start": [
                                238,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The new path the archive will be mounted to.",
                            "finish": [
                                238,
                                50
                            ],
                            "name": "mountpoint",
                            "rawdesc": "The new path the archive will be mounted to.",
                            "start": [
                                238,
                                40
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.",
                            "finish": [
                                238,
                                64
                            ],
                            "name": "appendToPath",
                            "rawdesc": "Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.",
                            "start": [
                                238,
                                52
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)\n\n\n---\n\n@*param* `archive` — The folder or zip file in the game's save directory to mount.\n\n@*param* `mountpoint` — The new path the archive will be mounted to.\n\n@*param* `appendToPath` — Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.\n\n@*return* `success` — True if the archive was successfully mounted, false otherwise.",
                    "finish": [
                        238,
                        69
                    ],
                    "rawdesc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)",
                    "returns": [
                        {
                            "desc": "True if the archive was successfully mounted, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the archive was successfully mounted, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        238,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.mount(archive: string, mountpoint: string, appendToPath?: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    238,
                    30
                ],
                "name": "mount",
                "rawdesc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)",
                "start": [
                    238,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)\n\n\n---\n\n@*param* `filename` — The filename of the file.\n\n@*return* `file` — The new File object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename of the file.",
                            "finish": [
                                251,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The filename of the file.",
                            "start": [
                                251,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)\n\n\n---\n\n@*param* `filename` — The filename of the file.\n\n@*return* `file` — The new File object.",
                    "finish": [
                        251,
                        46
                    ],
                    "rawdesc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)",
                    "returns": [
                        {
                            "desc": "The new File object.",
                            "name": "file",
                            "rawdesc": "The new File object.",
                            "type": "function.return",
                            "view": "love.File"
                        }
                    ],
                    "start": [
                        251,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.newFile(filename: string)\n  -> file: love.File"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    251,
                    32
                ],
                "name": "newFile",
                "rawdesc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)",
                "start": [
                    251,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)\n\n\n---\n\n@*param* `contents` — The contents of the file in memory represented as a string.\n\n@*param* `name` — The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.\n\n@*return* `data` — The new FileData.",
                "extends": {
                    "args": [
                        {
                            "desc": "The contents of the file in memory represented as a string.",
                            "finish": [
                                264,
                                45
                            ],
                            "name": "contents",
                            "rawdesc": "The contents of the file in memory represented as a string.",
                            "start": [
                                264,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.",
                            "finish": [
                                264,
                                51
                            ],
                            "name": "name",
                            "rawdesc": "The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.",
                            "start": [
                                264,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)\n\n\n---\n\n@*param* `contents` — The contents of the file in memory represented as a string.\n\n@*param* `name` — The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.\n\n@*return* `data` — The new FileData.",
                    "finish": [
                        264,
                        56
                    ],
                    "rawdesc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)",
                    "returns": [
                        {
                            "desc": "The new FileData.",
                            "name": "data",
                            "rawdesc": "The new FileData.",
                            "type": "function.return",
                            "view": "love.FileData"
                        }
                    ],
                    "start": [
                        264,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.newFileData(contents: string, name: string)\n  -> data: love.FileData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    264,
                    36
                ],
                "name": "newFileData",
                "rawdesc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)",
                "start": [
                    264,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `size` — How many bytes to read.\n\n@*return* `contents` — The file contents.\n\n@*return* `size` — How many bytes have been read.\n\n@*return* `contents` — returns nil as content.\n\n@*return* `error` — returns an error message.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                279,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                279,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to read.",
                            "finish": [
                                279,
                                40
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to read.",
                            "start": [
                                279,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `size` — How many bytes to read.\n\n@*return* `contents` — The file contents.\n\n@*return* `size` — How many bytes have been read.\n\n@*return* `contents` — returns nil as content.\n\n@*return* `error` — returns an error message.",
                    "finish": [
                        279,
                        45
                    ],
                    "rawdesc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)",
                    "returns": [
                        {
                            "desc": "The file contents.",
                            "name": "contents",
                            "rawdesc": "The file contents.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes have been read.",
                            "name": "size",
                            "rawdesc": "How many bytes have been read.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "returns nil as content.",
                            "name": "contents",
                            "rawdesc": "returns nil as content.",
                            "type": "function.return",
                            "view": "nil"
                        },
                        {
                            "desc": "returns an error message.",
                            "name": "error",
                            "rawdesc": "returns an error message.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        279,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.read(name: string, size?: number)\n  -> contents: string\n  2. size: number\n  3. contents: nil\n  4. error: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    279,
                    29
                ],
                "name": "read",
                "rawdesc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)",
                "start": [
                    279,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)\n\n@*param* `name` — The file or directory to remove.\n\n@*return* `success` — True if the file/directory was removed, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file or directory to remove.",
                            "finish": [
                                289,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "The file or directory to remove.",
                            "start": [
                                289,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)\n\n@*param* `name` — The file or directory to remove.\n\n@*return* `success` — True if the file/directory was removed, false otherwise.",
                    "finish": [
                        289,
                        41
                    ],
                    "rawdesc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)",
                    "returns": [
                        {
                            "desc": "True if the file/directory was removed, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the file/directory was removed, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        289,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.remove(name: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    289,
                    31
                ],
                "name": "remove",
                "rawdesc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)",
                "start": [
                    289,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "The paths that the ''require'' function will check in love's filesystem.",
                            "finish": [
                                302,
                                46
                            ],
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check in love's filesystem.",
                            "start": [
                                302,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                    "finish": [
                        302,
                        51
                    ],
                    "rawdesc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)",
                    "start": [
                        302,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setCRequirePath(paths: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    302,
                    40
                ],
                "name": "setCRequirePath",
                "rawdesc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)",
                "start": [
                    302,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)\n\n\n---\n\n@*param* `name` — The new identity that will be used as write directory.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new identity that will be used as write directory.",
                            "finish": [
                                314,
                                41
                            ],
                            "name": "name",
                            "rawdesc": "The new identity that will be used as write directory.",
                            "start": [
                                314,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)\n\n\n---\n\n@*param* `name` — The new identity that will be used as write directory.",
                    "finish": [
                        314,
                        46
                    ],
                    "rawdesc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)",
                    "start": [
                        314,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setIdentity(name: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    314,
                    36
                ],
                "name": "setIdentity",
                "rawdesc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)",
                "start": [
                    314,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "The paths that the ''require'' function will check in love's filesystem.",
                            "finish": [
                                327,
                                45
                            ],
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check in love's filesystem.",
                            "start": [
                                327,
                                40
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                    "finish": [
                        327,
                        50
                    ],
                    "rawdesc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)",
                    "start": [
                        327,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setRequirePath(paths: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    327,
                    39
                ],
                "name": "setRequirePath",
                "rawdesc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)",
                "start": [
                    327,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)\n\n@*param* `path` — Absolute path to the game's source folder.",
                "extends": {
                    "args": [
                        {
                            "desc": "Absolute path to the game's source folder.",
                            "finish": [
                                336,
                                39
                            ],
                            "name": "path",
                            "rawdesc": "Absolute path to the game's source folder.",
                            "start": [
                                336,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)\n\n@*param* `path` — Absolute path to the game's source folder.",
                    "finish": [
                        336,
                        44
                    ],
                    "rawdesc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)",
                    "start": [
                        336,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setSource(path: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    336,
                    34
                ],
                "name": "setSource",
                "rawdesc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)",
                "start": [
                    336,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)\n\n@*param* `enable` — Whether love.filesystem should follow symbolic links.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether love.filesystem should follow symbolic links.",
                            "finish": [
                                345,
                                50
                            ],
                            "name": "enable",
                            "rawdesc": "Whether love.filesystem should follow symbolic links.",
                            "start": [
                                345,
                                44
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)\n\n@*param* `enable` — Whether love.filesystem should follow symbolic links.",
                    "finish": [
                        345,
                        55
                    ],
                    "rawdesc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)",
                    "start": [
                        345,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setSymlinksEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    345,
                    43
                ],
                "name": "setSymlinksEnabled",
                "rawdesc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)",
                "start": [
                    345,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)\n\n@*param* `archive` — The folder or zip file in the game's save directory which is currently mounted.\n\n@*return* `success` — True if the archive was successfully unmounted, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "The folder or zip file in the game's save directory which is currently mounted.",
                            "finish": [
                                355,
                                40
                            ],
                            "name": "archive",
                            "rawdesc": "The folder or zip file in the game's save directory which is currently mounted.",
                            "start": [
                                355,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)\n\n@*param* `archive` — The folder or zip file in the game's save directory which is currently mounted.\n\n@*return* `success` — True if the archive was successfully unmounted, false otherwise.",
                    "finish": [
                        355,
                        45
                    ],
                    "rawdesc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)",
                    "returns": [
                        {
                            "desc": "True if the archive was successfully unmounted, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the archive was successfully unmounted, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        355,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.unmount(archive: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    355,
                    32
                ],
                "name": "unmount",
                "rawdesc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)",
                "start": [
                    355,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to write to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — If the operation was successful.\n\n@*return* `message` — Error message if operation was unsuccessful.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                369,
                                35
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                369,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The string data to write to the file.",
                            "finish": [
                                369,
                                41
                            ],
                            "name": "data",
                            "rawdesc": "The string data to write to the file.",
                            "start": [
                                369,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to write.",
                            "finish": [
                                369,
                                47
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to write.",
                            "start": [
                                369,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to write to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — If the operation was successful.\n\n@*return* `message` — Error message if operation was unsuccessful.",
                    "finish": [
                        369,
                        52
                    ],
                    "rawdesc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)",
                    "returns": [
                        {
                            "desc": "If the operation was successful.",
                            "name": "success",
                            "rawdesc": "If the operation was successful.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Error message if operation was unsuccessful.",
                            "name": "message",
                            "rawdesc": "Error message if operation was unsuccessful.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        369,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.write(name: string, data: string, size?: number)\n  -> success: boolean\n  2. message: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    369,
                    30
                ],
                "name": "write",
                "rawdesc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)",
                "start": [
                    369,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem",
        "type": "type",
        "view": "love.filesystem"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                    "finish": [
                        9,
                        20
                    ],
                    "rawdesc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                    "start": [
                        9,
                        18
                    ],
                    "type": "table",
                    "view": "love.filesystem"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    9,
                    15
                ],
                "name": "filesystem",
                "rawdesc": "\nProvides an interface to the user's filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.filesystem",
                "visible": "public"
            }
        ],
        "name": "love.filesystem",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to append to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — True if the operation was successful, or nil if there was an error.\n\n@*return* `errormsg` — The error message on failure.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                23,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                23,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The string data to append to the file.",
                            "finish": [
                                23,
                                42
                            ],
                            "name": "data",
                            "rawdesc": "The string data to append to the file.",
                            "start": [
                                23,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to write.",
                            "finish": [
                                23,
                                48
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to write.",
                            "start": [
                                23,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to append to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — True if the operation was successful, or nil if there was an error.\n\n@*return* `errormsg` — The error message on failure.",
                    "finish": [
                        23,
                        53
                    ],
                    "rawdesc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)",
                    "returns": [
                        {
                            "desc": "True if the operation was successful, or nil if there was an error.",
                            "name": "success",
                            "rawdesc": "True if the operation was successful, or nil if there was an error.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The error message on failure.",
                            "name": "errormsg",
                            "rawdesc": "The error message on failure.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        23,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.append(name: string, data: string, size?: number)\n  -> success: boolean\n  2. errormsg: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    23,
                    31
                ],
                "name": "append",
                "rawdesc": "\nAppend data to an existing file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.append)",
                "start": [
                    23,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.append",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)\n\n@*return* `enable` — Whether love.filesystem follows symbolic links.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)\n\n@*return* `enable` — Whether love.filesystem follows symbolic links.",
                    "finish": [
                        32,
                        49
                    ],
                    "rawdesc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)",
                    "returns": [
                        {
                            "desc": "Whether love.filesystem follows symbolic links.",
                            "name": "enable",
                            "rawdesc": "Whether love.filesystem follows symbolic links.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.areSymlinksEnabled()\n  -> enable: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    32,
                    43
                ],
                "name": "areSymlinksEnabled",
                "rawdesc": "\nGets whether love.filesystem follows symbolic links.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.areSymlinksEnabled)",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.areSymlinksEnabled",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)\n\n@*param* `name` — The directory to create.\n\n@*return* `success` — True if the directory was created, false if not.",
                "extends": {
                    "args": [
                        {
                            "desc": "The directory to create.",
                            "finish": [
                                44,
                                45
                            ],
                            "name": "name",
                            "rawdesc": "The directory to create.",
                            "start": [
                                44,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)\n\n@*param* `name` — The directory to create.\n\n@*return* `success` — True if the directory was created, false if not.",
                    "finish": [
                        44,
                        50
                    ],
                    "rawdesc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)",
                    "returns": [
                        {
                            "desc": "True if the directory was created, false if not.",
                            "name": "success",
                            "rawdesc": "True if the directory was created, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        44,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.createDirectory(name: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    44,
                    40
                ],
                "name": "createDirectory",
                "rawdesc": "\nRecursively creates a directory.\n\nWhen called with 'a/b' it creates both 'a' and 'a/b', if they don't exist already.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.createDirectory)",
                "start": [
                    44,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.createDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)\n\n@*return* `path` — The path of the application data directory",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)\n\n@*return* `path` — The path of the application data directory",
                    "finish": [
                        53,
                        50
                    ],
                    "rawdesc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)",
                    "returns": [
                        {
                            "desc": "The path of the application data directory",
                            "name": "path",
                            "rawdesc": "The path of the application data directory",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        53,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getAppdataDirectory()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    53,
                    44
                ],
                "name": "getAppdataDirectory",
                "rawdesc": "\nReturns the application data directory (could be the same as getUserDirectory)\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getAppdataDirectory)",
                "start": [
                    53,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getAppdataDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check for c libraries in love's filesystem.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check for c libraries in love's filesystem.",
                    "finish": [
                        66,
                        46
                    ],
                    "rawdesc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)",
                    "returns": [
                        {
                            "desc": "The paths that the ''require'' function will check for c libraries in love's filesystem.",
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check for c libraries in love's filesystem.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        66,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getCRequirePath()\n  -> paths: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    66,
                    40
                ],
                "name": "getCRequirePath",
                "rawdesc": "\nGets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getCRequirePath)",
                "start": [
                    66,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getCRequirePath",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)\n\n\n---\n\n@*param* `dir` — The directory.\n\n@*return* `files` — A sequence with the names of all files and subdirectories as strings.",
                "extends": {
                    "args": [
                        {
                            "desc": "The directory.",
                            "finish": [
                                79,
                                46
                            ],
                            "name": "dir",
                            "rawdesc": "The directory.",
                            "start": [
                                79,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)\n\n\n---\n\n@*param* `dir` — The directory.\n\n@*return* `files` — A sequence with the names of all files and subdirectories as strings.",
                    "finish": [
                        79,
                        51
                    ],
                    "rawdesc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)",
                    "returns": [
                        {
                            "desc": "A sequence with the names of all files and subdirectories as strings.",
                            "name": "files",
                            "rawdesc": "A sequence with the names of all files and subdirectories as strings.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getDirectoryItems(dir: string)\n  -> files: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    79,
                    42
                ],
                "name": "getDirectoryItems",
                "rawdesc": "\nReturns a table with the names of files and subdirectories in the specified path. The table is not sorted in any way; the order is undefined.\n\nIf the path passed to the function exists in the game and the save directory, it will list the files and directories from both places.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getDirectoryItems)",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getDirectoryItems",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)\n\n@*return* `name` — The identity that is used as write directory.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)\n\n@*return* `name` — The identity that is used as write directory.",
                    "finish": [
                        90,
                        42
                    ],
                    "rawdesc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)",
                    "returns": [
                        {
                            "desc": "The identity that is used as write directory.",
                            "name": "name",
                            "rawdesc": "The identity that is used as write directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        90,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getIdentity()\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    90,
                    36
                ],
                "name": "getIdentity",
                "rawdesc": "\nGets the write directory name for your game.\n\nNote that this only returns the name of the folder to store your files in, not the full path.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getIdentity)",
                "start": [
                    90,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getIdentity",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n@*param* `path` — The file or directory path to check.\n\n@*param* `filtertype` — If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.\n\n@*return* `info` — A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The file or directory path to check.",
                            "finish": [
                                103,
                                37
                            ],
                            "name": "path",
                            "rawdesc": "The file or directory path to check.",
                            "start": [
                                103,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.",
                            "finish": [
                                103,
                                49
                            ],
                            "name": "filtertype",
                            "rawdesc": "If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.",
                            "start": [
                                103,
                                39
                            ],
                            "type": "local",
                            "view": "(\"directory\"|\"file\"|\"other\"|\"symlink\")?"
                        }
                    ],
                    "desc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n@*param* `path` — The file or directory path to check.\n\n@*param* `filtertype` — If supplied, this parameter causes getInfo to only return the info table if the item at the given path matches the specified file type.\n\n@*return* `info` — A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                    "finish": [
                        103,
                        54
                    ],
                    "rawdesc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                    "returns": [
                        {
                            "desc": "A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:",
                            "name": "info",
                            "rawdesc": "A table containing information about the specified path, or nil if nothing exists at the path. The table contains the following fields:",
                            "type": "function.return",
                            "view": "{ type: \"directory\"|\"file\"|\"other\"|\"symlink\", size: number, modtime: number }"
                        }
                    ],
                    "start": [
                        103,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getInfo(path: string, filtertype?: \"directory\"|\"file\"|\"other\"|\"symlink\")\n  -> info: { type: \"directory\"|\"file\"|\"other\"|\"symlink\", size: number, modtime: number }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    103,
                    32
                ],
                "name": "getInfo",
                "rawdesc": "\nGets information about the specified file or directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getInfo)\n\n\n---\n\n```lua\n-- \n-- The type of a file.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FileType)\n-- \nfiltertype:\n    | \"file\" -- Regular file.\n    | \"directory\" -- Directory.\n    | \"symlink\" -- Symbolic link.\n    | \"other\" -- Something completely different like a device.\n```",
                "start": [
                    103,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getInfo",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)\n\n@*param* `filepath` — The filepath to get the directory of.\n\n@*return* `realdir` — The platform-specific full path of the directory containing the filepath.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to get the directory of.",
                            "finish": [
                                115,
                                50
                            ],
                            "name": "filepath",
                            "rawdesc": "The filepath to get the directory of.",
                            "start": [
                                115,
                                42
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)\n\n@*param* `filepath` — The filepath to get the directory of.\n\n@*return* `realdir` — The platform-specific full path of the directory containing the filepath.",
                    "finish": [
                        115,
                        55
                    ],
                    "rawdesc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)",
                    "returns": [
                        {
                            "desc": "The platform-specific full path of the directory containing the filepath.",
                            "name": "realdir",
                            "rawdesc": "The platform-specific full path of the directory containing the filepath.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        115,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getRealDirectory(filepath: string)\n  -> realdir: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    115,
                    41
                ],
                "name": "getRealDirectory",
                "rawdesc": "\nGets the platform-specific absolute path of the directory containing a filepath.\n\nThis can be used to determine whether a file is inside the save directory or the game's source .love.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRealDirectory)",
                "start": [
                    115,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getRealDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)\n\n@*return* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                    "finish": [
                        128,
                        45
                    ],
                    "rawdesc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)",
                    "returns": [
                        {
                            "desc": "The paths that the ''require'' function will check in love's filesystem.",
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check in love's filesystem.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        128,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getRequirePath()\n  -> paths: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    128,
                    39
                ],
                "name": "getRequirePath",
                "rawdesc": "\nGets the filesystem paths that will be searched when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getRequirePath)",
                "start": [
                    128,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getRequirePath",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)\n\n@*return* `dir` — The absolute path to the save directory.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)\n\n@*return* `dir` — The absolute path to the save directory.",
                    "finish": [
                        141,
                        47
                    ],
                    "rawdesc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)",
                    "returns": [
                        {
                            "desc": "The absolute path to the save directory.",
                            "name": "dir",
                            "rawdesc": "The absolute path to the save directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        141,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getSaveDirectory()\n  -> dir: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    141,
                    41
                ],
                "name": "getSaveDirectory",
                "rawdesc": "\nGets the full path to the designated save directory.\n\nThis can be useful if you want to use the standard io library (or something else) to\n\nread or write in the save directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSaveDirectory)",
                "start": [
                    141,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getSaveDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)\n\n@*return* `path` — The full platform-dependent path of the .love file or directory.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)\n\n@*return* `path` — The full platform-dependent path of the .love file or directory.",
                    "finish": [
                        150,
                        40
                    ],
                    "rawdesc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)",
                    "returns": [
                        {
                            "desc": "The full platform-dependent path of the .love file or directory.",
                            "name": "path",
                            "rawdesc": "The full platform-dependent path of the .love file or directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        150,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getSource()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    150,
                    34
                ],
                "name": "getSource",
                "rawdesc": "\nReturns the full path to the the .love file or directory. If the game is fused to the LÖVE executable, then the executable is returned.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSource)",
                "start": [
                    150,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getSource",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)\n\n@*return* `path` — The full platform-dependent path of the directory containing the .love file.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)\n\n@*return* `path` — The full platform-dependent path of the directory containing the .love file.",
                    "finish": [
                        161,
                        53
                    ],
                    "rawdesc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)",
                    "returns": [
                        {
                            "desc": "The full platform-dependent path of the directory containing the .love file.",
                            "name": "path",
                            "rawdesc": "The full platform-dependent path of the directory containing the .love file.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getSourceBaseDirectory()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    161,
                    47
                ],
                "name": "getSourceBaseDirectory",
                "rawdesc": "\nReturns the full path to the directory containing the .love file. If the game is fused to the LÖVE executable, then the directory containing the executable is returned.\n\nIf love.filesystem.isFused is true, the path returned by this function can be passed to love.filesystem.mount, which will make the directory containing the main game (e.g. C:\\Program Files\\coolgame\\) readable by love.filesystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory)",
                "start": [
                    161,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getSourceBaseDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)\n\n@*return* `path` — The path of the user's directory",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)\n\n@*return* `path` — The path of the user's directory",
                    "finish": [
                        170,
                        47
                    ],
                    "rawdesc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)",
                    "returns": [
                        {
                            "desc": "The path of the user's directory",
                            "name": "path",
                            "rawdesc": "The path of the user's directory",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getUserDirectory()\n  -> path: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    170,
                    41
                ],
                "name": "getUserDirectory",
                "rawdesc": "\nReturns the path of the user's directory\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getUserDirectory)",
                "start": [
                    170,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getUserDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)\n\n@*return* `cwd` — The current working directory.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)\n\n@*return* `cwd` — The current working directory.",
                    "finish": [
                        179,
                        50
                    ],
                    "rawdesc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)",
                    "returns": [
                        {
                            "desc": "The current working directory.",
                            "name": "cwd",
                            "rawdesc": "The current working directory.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        179,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.getWorkingDirectory()\n  -> cwd: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    179,
                    44
                ],
                "name": "getWorkingDirectory",
                "rawdesc": "\nGets the current working directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.getWorkingDirectory)",
                "start": [
                    179,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.getWorkingDirectory",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)\n\n@*param* `appname` — The name of the application binary, typically love.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the application binary, typically love.",
                            "finish": [
                                188,
                                37
                            ],
                            "name": "appname",
                            "rawdesc": "The name of the application binary, typically love.",
                            "start": [
                                188,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)\n\n@*param* `appname` — The name of the application binary, typically love.",
                    "finish": [
                        188,
                        42
                    ],
                    "rawdesc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)",
                    "start": [
                        188,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.init(appname: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    188,
                    29
                ],
                "name": "init",
                "rawdesc": "\nInitializes love.filesystem, will be called internally, so should not be used explicitly.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.init)",
                "start": [
                    188,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.init",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)\n\n@*return* `fused` — True if the game is in fused mode, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)\n\n@*return* `fused` — True if the game is in fused mode, false otherwise.",
                    "finish": [
                        201,
                        38
                    ],
                    "rawdesc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)",
                    "returns": [
                        {
                            "desc": "True if the game is in fused mode, false otherwise.",
                            "name": "fused",
                            "rawdesc": "True if the game is in fused mode, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.isFused()\n  -> fused: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    201,
                    32
                ],
                "name": "isFused",
                "rawdesc": "\nGets whether the game is in fused mode or not.\n\nIf a game is in fused mode, its save directory will be directly in the Appdata directory instead of Appdata/LOVE/. The game will also be able to load C Lua dynamic libraries which are located in the save directory.\n\nA game is in fused mode if the source .love has been fused to the executable (see Game Distribution), or if '--fused' has been given as a command-line argument when starting the game.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.isFused)",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.isFused",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)\n\n@*param* `name` — The name (and path) of the file\n\n@*return* `iterator` — A function that iterates over all the lines in the file",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file",
                            "finish": [
                                211,
                                35
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file",
                            "start": [
                                211,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)\n\n@*param* `name` — The name (and path) of the file\n\n@*return* `iterator` — A function that iterates over all the lines in the file",
                    "finish": [
                        211,
                        40
                    ],
                    "rawdesc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)",
                    "returns": [
                        {
                            "desc": "A function that iterates over all the lines in the file",
                            "name": "iterator",
                            "rawdesc": "A function that iterates over all the lines in the file",
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        211,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.lines(name: string)\n  -> iterator: function"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    211,
                    30
                ],
                "name": "lines",
                "rawdesc": "\nIterate over the lines in a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.lines)",
                "start": [
                    211,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.lines",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)\n\n@*param* `name` — The name (and path) of the file.\n\n@*return* `chunk` — The loaded chunk.\n\n@*return* `errormsg` — The error message if file could not be opened.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                222,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                222,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)\n\n@*param* `name` — The name (and path) of the file.\n\n@*return* `chunk` — The loaded chunk.\n\n@*return* `errormsg` — The error message if file could not be opened.",
                    "finish": [
                        222,
                        39
                    ],
                    "rawdesc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)",
                    "returns": [
                        {
                            "desc": "The loaded chunk.",
                            "name": "chunk",
                            "rawdesc": "The loaded chunk.",
                            "type": "function.return",
                            "view": "function"
                        },
                        {
                            "desc": "The error message if file could not be opened.",
                            "name": "errormsg",
                            "rawdesc": "The error message if file could not be opened.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        222,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.load(name: string)\n  -> chunk: function\n  2. errormsg: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    222,
                    29
                ],
                "name": "load",
                "rawdesc": "\nLoads a Lua file (but does not run it).\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.load)",
                "start": [
                    222,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.load",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)\n\n\n---\n\n@*param* `archive` — The folder or zip file in the game's save directory to mount.\n\n@*param* `mountpoint` — The new path the archive will be mounted to.\n\n@*param* `appendToPath` — Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.\n\n@*return* `success` — True if the archive was successfully mounted, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "The folder or zip file in the game's save directory to mount.",
                            "finish": [
                                238,
                                38
                            ],
                            "name": "archive",
                            "rawdesc": "The folder or zip file in the game's save directory to mount.",
                            "start": [
                                238,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The new path the archive will be mounted to.",
                            "finish": [
                                238,
                                50
                            ],
                            "name": "mountpoint",
                            "rawdesc": "The new path the archive will be mounted to.",
                            "start": [
                                238,
                                40
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.",
                            "finish": [
                                238,
                                64
                            ],
                            "name": "appendToPath",
                            "rawdesc": "Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.",
                            "start": [
                                238,
                                52
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)\n\n\n---\n\n@*param* `archive` — The folder or zip file in the game's save directory to mount.\n\n@*param* `mountpoint` — The new path the archive will be mounted to.\n\n@*param* `appendToPath` — Whether the archive will be searched when reading a filepath before or after already-mounted archives. This includes the game's source and save directories.\n\n@*return* `success` — True if the archive was successfully mounted, false otherwise.",
                    "finish": [
                        238,
                        69
                    ],
                    "rawdesc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)",
                    "returns": [
                        {
                            "desc": "True if the archive was successfully mounted, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the archive was successfully mounted, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        238,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.mount(archive: string, mountpoint: string, appendToPath?: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    238,
                    30
                ],
                "name": "mount",
                "rawdesc": "\nMounts a zip file or folder in the game's save directory for reading.\n\nIt is also possible to mount love.filesystem.getSourceBaseDirectory if the game is in fused mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.mount)",
                "start": [
                    238,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.mount",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)\n\n\n---\n\n@*param* `filename` — The filename of the file.\n\n@*return* `file` — The new File object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename of the file.",
                            "finish": [
                                251,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The filename of the file.",
                            "start": [
                                251,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)\n\n\n---\n\n@*param* `filename` — The filename of the file.\n\n@*return* `file` — The new File object.",
                    "finish": [
                        251,
                        46
                    ],
                    "rawdesc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)",
                    "returns": [
                        {
                            "desc": "The new File object.",
                            "name": "file",
                            "rawdesc": "The new File object.",
                            "type": "function.return",
                            "view": "love.File"
                        }
                    ],
                    "start": [
                        251,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.newFile(filename: string)\n  -> file: love.File"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    251,
                    32
                ],
                "name": "newFile",
                "rawdesc": "\nCreates a new File object.\n\nIt needs to be opened before it can be accessed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFile)",
                "start": [
                    251,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.newFile",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)\n\n\n---\n\n@*param* `contents` — The contents of the file in memory represented as a string.\n\n@*param* `name` — The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.\n\n@*return* `data` — The new FileData.",
                "extends": {
                    "args": [
                        {
                            "desc": "The contents of the file in memory represented as a string.",
                            "finish": [
                                264,
                                45
                            ],
                            "name": "contents",
                            "rawdesc": "The contents of the file in memory represented as a string.",
                            "start": [
                                264,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.",
                            "finish": [
                                264,
                                51
                            ],
                            "name": "name",
                            "rawdesc": "The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.",
                            "start": [
                                264,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)\n\n\n---\n\n@*param* `contents` — The contents of the file in memory represented as a string.\n\n@*param* `name` — The name of the file. The extension may be parsed and used by LÖVE when passing the FileData object into love.audio.newSource.\n\n@*return* `data` — The new FileData.",
                    "finish": [
                        264,
                        56
                    ],
                    "rawdesc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)",
                    "returns": [
                        {
                            "desc": "The new FileData.",
                            "name": "data",
                            "rawdesc": "The new FileData.",
                            "type": "function.return",
                            "view": "love.FileData"
                        }
                    ],
                    "start": [
                        264,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.newFileData(contents: string, name: string)\n  -> data: love.FileData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    264,
                    36
                ],
                "name": "newFileData",
                "rawdesc": "\nCreates a new FileData object from a file on disk, or from a string in memory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.newFileData)",
                "start": [
                    264,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.newFileData",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `size` — How many bytes to read.\n\n@*return* `contents` — The file contents.\n\n@*return* `size` — How many bytes have been read.\n\n@*return* `contents` — returns nil as content.\n\n@*return* `error` — returns an error message.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                279,
                                34
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                279,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to read.",
                            "finish": [
                                279,
                                40
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to read.",
                            "start": [
                                279,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `size` — How many bytes to read.\n\n@*return* `contents` — The file contents.\n\n@*return* `size` — How many bytes have been read.\n\n@*return* `contents` — returns nil as content.\n\n@*return* `error` — returns an error message.",
                    "finish": [
                        279,
                        45
                    ],
                    "rawdesc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)",
                    "returns": [
                        {
                            "desc": "The file contents.",
                            "name": "contents",
                            "rawdesc": "The file contents.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes have been read.",
                            "name": "size",
                            "rawdesc": "How many bytes have been read.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "returns nil as content.",
                            "name": "contents",
                            "rawdesc": "returns nil as content.",
                            "type": "function.return",
                            "view": "nil"
                        },
                        {
                            "desc": "returns an error message.",
                            "name": "error",
                            "rawdesc": "returns an error message.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        279,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.read(name: string, size?: number)\n  -> contents: string\n  2. size: number\n  3. contents: nil\n  4. error: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    279,
                    29
                ],
                "name": "read",
                "rawdesc": "\nRead the contents of a file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.read)",
                "start": [
                    279,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.read",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)\n\n@*param* `name` — The file or directory to remove.\n\n@*return* `success` — True if the file/directory was removed, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file or directory to remove.",
                            "finish": [
                                289,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "The file or directory to remove.",
                            "start": [
                                289,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)\n\n@*param* `name` — The file or directory to remove.\n\n@*return* `success` — True if the file/directory was removed, false otherwise.",
                    "finish": [
                        289,
                        41
                    ],
                    "rawdesc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)",
                    "returns": [
                        {
                            "desc": "True if the file/directory was removed, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the file/directory was removed, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        289,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.remove(name: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    289,
                    31
                ],
                "name": "remove",
                "rawdesc": "\nRemoves a file or empty directory.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.remove)",
                "start": [
                    289,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.remove",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "The paths that the ''require'' function will check in love's filesystem.",
                            "finish": [
                                302,
                                46
                            ],
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check in love's filesystem.",
                            "start": [
                                302,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                    "finish": [
                        302,
                        51
                    ],
                    "rawdesc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)",
                    "start": [
                        302,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setCRequirePath(paths: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    302,
                    40
                ],
                "name": "setCRequirePath",
                "rawdesc": "\nSets the filesystem paths that will be searched for c libraries when require is called.\n\nThe paths string returned by this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.) Additionally, any occurrence of a double question mark ('??') will be replaced by the name passed to require and the default library extension for the platform.\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setCRequirePath)",
                "start": [
                    302,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.setCRequirePath",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)\n\n\n---\n\n@*param* `name` — The new identity that will be used as write directory.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new identity that will be used as write directory.",
                            "finish": [
                                314,
                                41
                            ],
                            "name": "name",
                            "rawdesc": "The new identity that will be used as write directory.",
                            "start": [
                                314,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)\n\n\n---\n\n@*param* `name` — The new identity that will be used as write directory.",
                    "finish": [
                        314,
                        46
                    ],
                    "rawdesc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)",
                    "start": [
                        314,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setIdentity(name: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    314,
                    36
                ],
                "name": "setIdentity",
                "rawdesc": "\nSets the write directory for your game.\n\nNote that you can only set the name of the folder to store your files in, not the location.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setIdentity)",
                "start": [
                    314,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.setIdentity",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "The paths that the ''require'' function will check in love's filesystem.",
                            "finish": [
                                327,
                                45
                            ],
                            "name": "paths",
                            "rawdesc": "The paths that the ''require'' function will check in love's filesystem.",
                            "start": [
                                327,
                                40
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)\n\n@*param* `paths` — The paths that the ''require'' function will check in love's filesystem.",
                    "finish": [
                        327,
                        50
                    ],
                    "rawdesc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)",
                    "start": [
                        327,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setRequirePath(paths: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    327,
                    39
                ],
                "name": "setRequirePath",
                "rawdesc": "\nSets the filesystem paths that will be searched when require is called.\n\nThe paths string given to this function is a sequence of path templates separated by semicolons. The argument passed to ''require'' will be inserted in place of any question mark ('?') character in each template (after the dot characters in the argument passed to ''require'' are replaced by directory separators.)\n\nThe paths are relative to the game's source and save directories, as well as any paths mounted with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setRequirePath)",
                "start": [
                    327,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.setRequirePath",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)\n\n@*param* `path` — Absolute path to the game's source folder.",
                "extends": {
                    "args": [
                        {
                            "desc": "Absolute path to the game's source folder.",
                            "finish": [
                                336,
                                39
                            ],
                            "name": "path",
                            "rawdesc": "Absolute path to the game's source folder.",
                            "start": [
                                336,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)\n\n@*param* `path` — Absolute path to the game's source folder.",
                    "finish": [
                        336,
                        44
                    ],
                    "rawdesc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)",
                    "start": [
                        336,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setSource(path: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    336,
                    34
                ],
                "name": "setSource",
                "rawdesc": "\nSets the source of the game, where the code is present. This function can only be called once, and is normally automatically done by LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSource)",
                "start": [
                    336,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.setSource",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)\n\n@*param* `enable` — Whether love.filesystem should follow symbolic links.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether love.filesystem should follow symbolic links.",
                            "finish": [
                                345,
                                50
                            ],
                            "name": "enable",
                            "rawdesc": "Whether love.filesystem should follow symbolic links.",
                            "start": [
                                345,
                                44
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)\n\n@*param* `enable` — Whether love.filesystem should follow symbolic links.",
                    "finish": [
                        345,
                        55
                    ],
                    "rawdesc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)",
                    "start": [
                        345,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.setSymlinksEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    345,
                    43
                ],
                "name": "setSymlinksEnabled",
                "rawdesc": "\nSets whether love.filesystem follows symbolic links. It is enabled by default in version 0.10.0 and newer, and disabled by default in 0.9.2.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.setSymlinksEnabled)",
                "start": [
                    345,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.setSymlinksEnabled",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)\n\n@*param* `archive` — The folder or zip file in the game's save directory which is currently mounted.\n\n@*return* `success` — True if the archive was successfully unmounted, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "The folder or zip file in the game's save directory which is currently mounted.",
                            "finish": [
                                355,
                                40
                            ],
                            "name": "archive",
                            "rawdesc": "The folder or zip file in the game's save directory which is currently mounted.",
                            "start": [
                                355,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)\n\n@*param* `archive` — The folder or zip file in the game's save directory which is currently mounted.\n\n@*return* `success` — True if the archive was successfully unmounted, false otherwise.",
                    "finish": [
                        355,
                        45
                    ],
                    "rawdesc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)",
                    "returns": [
                        {
                            "desc": "True if the archive was successfully unmounted, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if the archive was successfully unmounted, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        355,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.unmount(archive: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    355,
                    32
                ],
                "name": "unmount",
                "rawdesc": "\nUnmounts a zip file or folder previously mounted for reading with love.filesystem.mount.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.unmount)",
                "start": [
                    355,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.unmount",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to write to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — If the operation was successful.\n\n@*return* `message` — Error message if operation was unsuccessful.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name (and path) of the file.",
                            "finish": [
                                369,
                                35
                            ],
                            "name": "name",
                            "rawdesc": "The name (and path) of the file.",
                            "start": [
                                369,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The string data to write to the file.",
                            "finish": [
                                369,
                                41
                            ],
                            "name": "data",
                            "rawdesc": "The string data to write to the file.",
                            "start": [
                                369,
                                37
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "How many bytes to write.",
                            "finish": [
                                369,
                                47
                            ],
                            "name": "size",
                            "rawdesc": "How many bytes to write.",
                            "start": [
                                369,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)\n\n\n---\n\n@*param* `name` — The name (and path) of the file.\n\n@*param* `data` — The string data to write to the file.\n\n@*param* `size` — How many bytes to write.\n\n@*return* `success` — If the operation was successful.\n\n@*return* `message` — Error message if operation was unsuccessful.",
                    "finish": [
                        369,
                        52
                    ],
                    "rawdesc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)",
                    "returns": [
                        {
                            "desc": "If the operation was successful.",
                            "name": "success",
                            "rawdesc": "If the operation was successful.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Error message if operation was unsuccessful.",
                            "name": "message",
                            "rawdesc": "Error message if operation was unsuccessful.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        369,
                        0
                    ],
                    "type": "function",
                    "view": "function love.filesystem.write(name: string, data: string, size?: number)\n  -> success: boolean\n  2. message: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/filesystem.lua",
                "finish": [
                    369,
                    30
                ],
                "name": "write",
                "rawdesc": "\nWrite data to a file in the save directory. If the file existed already, it will be completely replaced by the new contents.\n\n\n[Open in Browser](https://love2d.org/wiki/love.filesystem.write)",
                "start": [
                    369,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.filesystem.write",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when window receives or loses focus.\n",
                "finish": [
                    182,
                    40
                ],
                "rawdesc": "\nCallback function triggered when window receives or loses focus.\n",
                "start": [
                    182,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(focus: boolean)"
            }
        ],
        "fields": [],
        "name": "love.focus",
        "type": "type",
        "view": "love.focus"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    8,
                    19
                ],
                "rawdesc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.font",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)\n\n\n---\n\n@*param* `imageData` — The image data containing the drawable pictures of font glyphs.\n\n@*param* `glyphs` — The sequence of glyphs in the ImageData.\n\n@*param* `dpiscale` — DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                "extends": {
                    "args": [
                        {
                            "desc": "The image data containing the drawable pictures of font glyphs.",
                            "finish": [
                                22,
                                48
                            ],
                            "name": "imageData",
                            "rawdesc": "The image data containing the drawable pictures of font glyphs.",
                            "start": [
                                22,
                                39
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The sequence of glyphs in the ImageData.",
                            "finish": [
                                22,
                                56
                            ],
                            "name": "glyphs",
                            "rawdesc": "The sequence of glyphs in the ImageData.",
                            "start": [
                                22,
                                50
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "DPI scale.",
                            "finish": [
                                22,
                                66
                            ],
                            "name": "dpiscale",
                            "rawdesc": "DPI scale.",
                            "start": [
                                22,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)\n\n\n---\n\n@*param* `imageData` — The image data containing the drawable pictures of font glyphs.\n\n@*param* `glyphs` — The sequence of glyphs in the ImageData.\n\n@*param* `dpiscale` — DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                    "finish": [
                        22,
                        71
                    ],
                    "rawdesc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        22,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newBMFontRasterizer(imageData: love.ImageData, glyphs: string, dpiscale?: number)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    22,
                    38
                ],
                "name": "newBMFontRasterizer",
                "rawdesc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)",
                "start": [
                    22,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)\n\n@*param* `rasterizer` — The Rasterizer containing the font.\n\n@*param* `glyph` — The character code of the glyph.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Rasterizer containing the font.",
                            "finish": [
                                32,
                                42
                            ],
                            "name": "rasterizer",
                            "rawdesc": "The Rasterizer containing the font.",
                            "start": [
                                32,
                                32
                            ],
                            "type": "local",
                            "view": "love.Rasterizer"
                        },
                        {
                            "desc": "The character code of the glyph.",
                            "finish": [
                                32,
                                49
                            ],
                            "name": "glyph",
                            "rawdesc": "The character code of the glyph.",
                            "start": [
                                32,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)\n\n@*param* `rasterizer` — The Rasterizer containing the font.\n\n@*param* `glyph` — The character code of the glyph.",
                    "finish": [
                        32,
                        54
                    ],
                    "rawdesc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)",
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newGlyphData(rasterizer: love.Rasterizer, glyph: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    32,
                    31
                ],
                "name": "newGlyphData",
                "rawdesc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)\n\n@*param* `imageData` — Font image data.\n\n@*param* `glyphs` — String containing font glyphs.\n\n@*param* `extraSpacing` — Font extra spacing.\n\n@*param* `dpiscale` — Font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                "extends": {
                    "args": [
                        {
                            "desc": "Font image data.",
                            "finish": [
                                45,
                                47
                            ],
                            "name": "imageData",
                            "rawdesc": "Font image data.",
                            "start": [
                                45,
                                38
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "String containing font glyphs.",
                            "finish": [
                                45,
                                55
                            ],
                            "name": "glyphs",
                            "rawdesc": "String containing font glyphs.",
                            "start": [
                                45,
                                49
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Font extra spacing.",
                            "finish": [
                                45,
                                69
                            ],
                            "name": "extraSpacing",
                            "rawdesc": "Font extra spacing.",
                            "start": [
                                45,
                                57
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Font DPI scale.",
                            "finish": [
                                45,
                                79
                            ],
                            "name": "dpiscale",
                            "rawdesc": "Font DPI scale.",
                            "start": [
                                45,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)\n\n@*param* `imageData` — Font image data.\n\n@*param* `glyphs` — String containing font glyphs.\n\n@*param* `extraSpacing` — Font extra spacing.\n\n@*param* `dpiscale` — Font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                    "finish": [
                        45,
                        84
                    ],
                    "rawdesc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        45,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newImageRasterizer(imageData: love.ImageData, glyphs: string, extraSpacing?: number, dpiscale?: number)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    45,
                    37
                ],
                "name": "newImageRasterizer",
                "rawdesc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)",
                "start": [
                    45,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)\n\n\n---\n\n@*param* `filename` — The font file.\n\n@*return* `rasterizer` — The rasterizer.",
                "extends": {
                    "args": [
                        {
                            "desc": "The font file.",
                            "finish": [
                                61,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The font file.",
                            "start": [
                                61,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)\n\n\n---\n\n@*param* `filename` — The font file.\n\n@*return* `rasterizer` — The rasterizer.",
                    "finish": [
                        61,
                        46
                    ],
                    "rawdesc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newRasterizer(filename: string)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    61,
                    32
                ],
                "name": "newRasterizer",
                "rawdesc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n@*param* `size` — The font size.\n\n@*param* `hinting` — True Type hinting mode.\n\n@*param* `dpiscale` — The font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The font size.",
                            "finish": [
                                75,
                                45
                            ],
                            "name": "size",
                            "rawdesc": "The font size.",
                            "start": [
                                75,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "True Type hinting mode.",
                            "finish": [
                                75,
                                54
                            ],
                            "name": "hinting",
                            "rawdesc": "True Type hinting mode.",
                            "start": [
                                75,
                                47
                            ],
                            "type": "local",
                            "view": "(\"light\"|\"mono\"|\"none\"|\"normal\")?"
                        },
                        {
                            "desc": "The font DPI scale.",
                            "finish": [
                                75,
                                64
                            ],
                            "name": "dpiscale",
                            "rawdesc": "The font DPI scale.",
                            "start": [
                                75,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n@*param* `size` — The font size.\n\n@*param* `hinting` — True Type hinting mode.\n\n@*param* `dpiscale` — The font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                    "finish": [
                        75,
                        69
                    ],
                    "rawdesc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newTrueTypeRasterizer(size?: number, hinting?: \"light\"|\"mono\"|\"none\"|\"normal\", dpiscale?: number)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    75,
                    40
                ],
                "name": "newTrueTypeRasterizer",
                "rawdesc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                "start": [
                    75,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.font",
        "type": "type",
        "view": "love.font"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "extends": {
                    "desc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                    "finish": [
                        9,
                        14
                    ],
                    "rawdesc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                    "start": [
                        9,
                        12
                    ],
                    "type": "table",
                    "view": "love.font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    9,
                    9
                ],
                "name": "font",
                "rawdesc": "\nAllows you to work with fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.font",
                "visible": "public"
            }
        ],
        "name": "love.font",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)\n\n\n---\n\n@*param* `imageData` — The image data containing the drawable pictures of font glyphs.\n\n@*param* `glyphs` — The sequence of glyphs in the ImageData.\n\n@*param* `dpiscale` — DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                "extends": {
                    "args": [
                        {
                            "desc": "The image data containing the drawable pictures of font glyphs.",
                            "finish": [
                                22,
                                48
                            ],
                            "name": "imageData",
                            "rawdesc": "The image data containing the drawable pictures of font glyphs.",
                            "start": [
                                22,
                                39
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The sequence of glyphs in the ImageData.",
                            "finish": [
                                22,
                                56
                            ],
                            "name": "glyphs",
                            "rawdesc": "The sequence of glyphs in the ImageData.",
                            "start": [
                                22,
                                50
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "DPI scale.",
                            "finish": [
                                22,
                                66
                            ],
                            "name": "dpiscale",
                            "rawdesc": "DPI scale.",
                            "start": [
                                22,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)\n\n\n---\n\n@*param* `imageData` — The image data containing the drawable pictures of font glyphs.\n\n@*param* `glyphs` — The sequence of glyphs in the ImageData.\n\n@*param* `dpiscale` — DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                    "finish": [
                        22,
                        71
                    ],
                    "rawdesc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        22,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newBMFontRasterizer(imageData: love.ImageData, glyphs: string, dpiscale?: number)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    22,
                    38
                ],
                "name": "newBMFontRasterizer",
                "rawdesc": "\nCreates a new BMFont Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newBMFontRasterizer)",
                "start": [
                    22,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.font.newBMFontRasterizer",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)\n\n@*param* `rasterizer` — The Rasterizer containing the font.\n\n@*param* `glyph` — The character code of the glyph.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Rasterizer containing the font.",
                            "finish": [
                                32,
                                42
                            ],
                            "name": "rasterizer",
                            "rawdesc": "The Rasterizer containing the font.",
                            "start": [
                                32,
                                32
                            ],
                            "type": "local",
                            "view": "love.Rasterizer"
                        },
                        {
                            "desc": "The character code of the glyph.",
                            "finish": [
                                32,
                                49
                            ],
                            "name": "glyph",
                            "rawdesc": "The character code of the glyph.",
                            "start": [
                                32,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)\n\n@*param* `rasterizer` — The Rasterizer containing the font.\n\n@*param* `glyph` — The character code of the glyph.",
                    "finish": [
                        32,
                        54
                    ],
                    "rawdesc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)",
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newGlyphData(rasterizer: love.Rasterizer, glyph: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    32,
                    31
                ],
                "name": "newGlyphData",
                "rawdesc": "\nCreates a new GlyphData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newGlyphData)",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.font.newGlyphData",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)\n\n@*param* `imageData` — Font image data.\n\n@*param* `glyphs` — String containing font glyphs.\n\n@*param* `extraSpacing` — Font extra spacing.\n\n@*param* `dpiscale` — Font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                "extends": {
                    "args": [
                        {
                            "desc": "Font image data.",
                            "finish": [
                                45,
                                47
                            ],
                            "name": "imageData",
                            "rawdesc": "Font image data.",
                            "start": [
                                45,
                                38
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "String containing font glyphs.",
                            "finish": [
                                45,
                                55
                            ],
                            "name": "glyphs",
                            "rawdesc": "String containing font glyphs.",
                            "start": [
                                45,
                                49
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Font extra spacing.",
                            "finish": [
                                45,
                                69
                            ],
                            "name": "extraSpacing",
                            "rawdesc": "Font extra spacing.",
                            "start": [
                                45,
                                57
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Font DPI scale.",
                            "finish": [
                                45,
                                79
                            ],
                            "name": "dpiscale",
                            "rawdesc": "Font DPI scale.",
                            "start": [
                                45,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)\n\n@*param* `imageData` — Font image data.\n\n@*param* `glyphs` — String containing font glyphs.\n\n@*param* `extraSpacing` — Font extra spacing.\n\n@*param* `dpiscale` — Font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.",
                    "finish": [
                        45,
                        84
                    ],
                    "rawdesc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        45,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newImageRasterizer(imageData: love.ImageData, glyphs: string, extraSpacing?: number, dpiscale?: number)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    45,
                    37
                ],
                "name": "newImageRasterizer",
                "rawdesc": "\nCreates a new Image Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newImageRasterizer)",
                "start": [
                    45,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.font.newImageRasterizer",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)\n\n\n---\n\n@*param* `filename` — The font file.\n\n@*return* `rasterizer` — The rasterizer.",
                "extends": {
                    "args": [
                        {
                            "desc": "The font file.",
                            "finish": [
                                61,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The font file.",
                            "start": [
                                61,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)\n\n\n---\n\n@*param* `filename` — The font file.\n\n@*return* `rasterizer` — The rasterizer.",
                    "finish": [
                        61,
                        46
                    ],
                    "rawdesc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newRasterizer(filename: string)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    61,
                    32
                ],
                "name": "newRasterizer",
                "rawdesc": "\nCreates a new Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newRasterizer)",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.font.newRasterizer",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n@*param* `size` — The font size.\n\n@*param* `hinting` — True Type hinting mode.\n\n@*param* `dpiscale` — The font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The font size.",
                            "finish": [
                                75,
                                45
                            ],
                            "name": "size",
                            "rawdesc": "The font size.",
                            "start": [
                                75,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "True Type hinting mode.",
                            "finish": [
                                75,
                                54
                            ],
                            "name": "hinting",
                            "rawdesc": "True Type hinting mode.",
                            "start": [
                                75,
                                47
                            ],
                            "type": "local",
                            "view": "(\"light\"|\"mono\"|\"none\"|\"normal\")?"
                        },
                        {
                            "desc": "The font DPI scale.",
                            "finish": [
                                75,
                                64
                            ],
                            "name": "dpiscale",
                            "rawdesc": "The font DPI scale.",
                            "start": [
                                75,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n@*param* `size` — The font size.\n\n@*param* `hinting` — True Type hinting mode.\n\n@*param* `dpiscale` — The font DPI scale.\n\n@*return* `rasterizer` — The rasterizer.\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                    "finish": [
                        75,
                        69
                    ],
                    "rawdesc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                    "returns": [
                        {
                            "desc": "The rasterizer.",
                            "name": "rasterizer",
                            "rawdesc": "The rasterizer.",
                            "type": "function.return",
                            "view": "love.Rasterizer"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "function love.font.newTrueTypeRasterizer(size?: number, hinting?: \"light\"|\"mono\"|\"none\"|\"normal\", dpiscale?: number)\n  -> rasterizer: love.Rasterizer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/font.lua",
                "finish": [
                    75,
                    40
                ],
                "name": "newTrueTypeRasterizer",
                "rawdesc": "\nCreates a new TrueType Rasterizer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.font.newTrueTypeRasterizer)\n\n\n---\n\n```lua\n-- \n-- True Type hinting mode.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/HintingMode)\n-- \nhinting:\n    | \"normal\" -- Default hinting. Should be preferred for typical antialiased fonts.\n    | \"light\" -- Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.\n    | \"mono\" -- Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.\n    | \"none\" -- Disables hinting for the font. Results in fuzzier text.\n```",
                "start": [
                    75,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.font.newTrueTypeRasterizer",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a Joystick's virtual gamepad axis is moved.\n",
                "finish": [
                    187,
                    94
                ],
                "rawdesc": "\nCalled when a Joystick's virtual gamepad axis is moved.\n",
                "start": [
                    187,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, axis: \"leftx\"|\"lefty\"|\"rightx\"|\"righty\"|\"triggerleft\"...(+1), value: number)"
            }
        ],
        "fields": [],
        "name": "love.gamepadaxis",
        "type": "type",
        "view": "love.gamepadaxis"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a Joystick's virtual gamepad button is pressed.\n",
                "finish": [
                    192,
                    86
                ],
                "rawdesc": "\nCalled when a Joystick's virtual gamepad button is pressed.\n",
                "start": [
                    192,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, button: \"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10))"
            }
        ],
        "fields": [],
        "name": "love.gamepadpressed",
        "type": "type",
        "view": "love.gamepadpressed"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a Joystick's virtual gamepad button is released.\n",
                "finish": [
                    197,
                    87
                ],
                "rawdesc": "\nCalled when a Joystick's virtual gamepad button is released.\n",
                "start": [
                    197,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, button: \"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10))"
            }
        ],
        "fields": [],
        "name": "love.gamepadreleased",
        "type": "type",
        "view": "love.gamepadreleased"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)\n\n@*return* `major` — The major version of LÖVE, i.e. 0 for version 0.9.1.\n\n@*return* `minor` — The minor version of LÖVE, i.e. 9 for version 0.9.1.\n\n@*return* `revision` — The revision version of LÖVE, i.e. 1 for version 0.9.1.\n\n@*return* `codename` — The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)\n\n@*return* `major` — The major version of LÖVE, i.e. 0 for version 0.9.1.\n\n@*return* `minor` — The minor version of LÖVE, i.e. 9 for version 0.9.1.\n\n@*return* `revision` — The revision version of LÖVE, i.e. 1 for version 0.9.1.\n\n@*return* `codename` — The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                    "finish": [
                        19,
                        30
                    ],
                    "rawdesc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)",
                    "returns": [
                        {
                            "desc": "The major version of LÖVE, i.e. 0 for version 0.9.1.",
                            "name": "major",
                            "rawdesc": "The major version of LÖVE, i.e. 0 for version 0.9.1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The minor version of LÖVE, i.e. 9 for version 0.9.1.",
                            "name": "minor",
                            "rawdesc": "The minor version of LÖVE, i.e. 9 for version 0.9.1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The revision version of LÖVE, i.e. 1 for version 0.9.1.",
                            "name": "revision",
                            "rawdesc": "The revision version of LÖVE, i.e. 1 for version 0.9.1.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                            "name": "codename",
                            "rawdesc": "The codename of the current version, i.e. 'Baby Inspector' for version 0.9.1.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        19,
                        0
                    ],
                    "type": "function",
                    "view": "function love.getVersion()\n  -> major: number\n  2. minor: number\n  3. revision: number\n  4. codename: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    19,
                    24
                ],
                "name": "getVersion",
                "rawdesc": "\nGets the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.getVersion)",
                "start": [
                    19,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.getVersion",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    14,
                    23
                ],
                "rawdesc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    14,
                    10
                ],
                "type": "doc.class",
                "view": "love.graphics",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)\n\n@*param* `transform` — The Transform object to apply to the current graphics coordinate transform.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Transform object to apply to the current graphics coordinate transform.",
                            "finish": [
                                26,
                                47
                            ],
                            "name": "transform",
                            "rawdesc": "The Transform object to apply to the current graphics coordinate transform.",
                            "start": [
                                26,
                                38
                            ],
                            "type": "local",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)\n\n@*param* `transform` — The Transform object to apply to the current graphics coordinate transform.",
                    "finish": [
                        26,
                        52
                    ],
                    "rawdesc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)",
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.applyTransform(transform: love.Transform)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    26,
                    37
                ],
                "name": "applyTransform",
                "rawdesc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n@*param* `drawmode` — How to draw the arc.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — Radius of the arc.\n\n@*param* `angle1` — The angle at which the arc begins.\n\n@*param* `angle2` — The angle at which the arc terminates.\n\n@*param* `segments` — The number of segments used for drawing the arc.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the arc.",
                            "finish": [
                                42,
                                35
                            ],
                            "name": "drawmode",
                            "rawdesc": "How to draw the arc.",
                            "start": [
                                42,
                                27
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of the center along x-axis.",
                            "finish": [
                                42,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The position of the center along x-axis.",
                            "start": [
                                42,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the center along y-axis.",
                            "finish": [
                                42,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The position of the center along y-axis.",
                            "start": [
                                42,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Radius of the arc.",
                            "finish": [
                                42,
                                49
                            ],
                            "name": "radius",
                            "rawdesc": "Radius of the arc.",
                            "start": [
                                42,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The angle at which the arc begins.",
                            "finish": [
                                42,
                                57
                            ],
                            "name": "angle1",
                            "rawdesc": "The angle at which the arc begins.",
                            "start": [
                                42,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The angle at which the arc terminates.",
                            "finish": [
                                42,
                                65
                            ],
                            "name": "angle2",
                            "rawdesc": "The angle at which the arc terminates.",
                            "start": [
                                42,
                                59
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of segments used for drawing the arc.",
                            "finish": [
                                42,
                                75
                            ],
                            "name": "segments",
                            "rawdesc": "The number of segments used for drawing the arc.",
                            "start": [
                                42,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n@*param* `drawmode` — How to draw the arc.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — Radius of the arc.\n\n@*param* `angle1` — The angle at which the arc begins.\n\n@*param* `angle2` — The angle at which the arc terminates.\n\n@*param* `segments` — The number of segments used for drawing the arc.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        42,
                        80
                    ],
                    "rawdesc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.arc(drawmode: \"fill\"|\"line\", x: number, y: number, radius: number, angle1: number, angle2: number, segments?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    42,
                    26
                ],
                "name": "arc",
                "rawdesc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)\n\n\n---\n\n@*param* `filename` — The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                            "finish": [
                                55,
                                49
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                            "start": [
                                55,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)\n\n\n---\n\n@*param* `filename` — The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                    "finish": [
                        55,
                        54
                    ],
                    "rawdesc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)",
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.captureScreenshot(filename: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    55,
                    40
                ],
                "name": "captureScreenshot",
                "rawdesc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n@*param* `mode` — How to draw the circle.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — The radius of the circle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the circle.",
                            "finish": [
                                68,
                                34
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the circle.",
                            "start": [
                                68,
                                30
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of the center along x-axis.",
                            "finish": [
                                68,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "The position of the center along x-axis.",
                            "start": [
                                68,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the center along y-axis.",
                            "finish": [
                                68,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "The position of the center along y-axis.",
                            "start": [
                                68,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The radius of the circle.",
                            "finish": [
                                68,
                                48
                            ],
                            "name": "radius",
                            "rawdesc": "The radius of the circle.",
                            "start": [
                                68,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n@*param* `mode` — How to draw the circle.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — The radius of the circle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        68,
                        53
                    ],
                    "rawdesc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.circle(mode: \"fill\"|\"line\", x: number, y: number, radius: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    68,
                    29
                ],
                "name": "circle",
                "rawdesc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                "extends": {
                    "args": [],
                    "desc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                    "finish": [
                        87,
                        34
                    ],
                    "rawdesc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    87,
                    28
                ],
                "name": "clear",
                "rawdesc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)\n\n\n---\n\n@*param* `discardcolor` — Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)\n\n@*param* `discardstencil` — Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)",
                            "finish": [
                                102,
                                43
                            ],
                            "name": "discardcolor",
                            "rawdesc": "Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)",
                            "start": [
                                102,
                                31
                            ],
                            "type": "local",
                            "view": "boolean?"
                        },
                        {
                            "desc": "Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                            "finish": [
                                102,
                                59
                            ],
                            "name": "discardstencil",
                            "rawdesc": "Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                            "start": [
                                102,
                                45
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)\n\n\n---\n\n@*param* `discardcolor` — Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)\n\n@*param* `discardstencil` — Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                    "finish": [
                        102,
                        64
                    ],
                    "rawdesc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)",
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.discard(discardcolor?: boolean, discardstencil?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    102,
                    30
                ],
                "name": "discard",
                "rawdesc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)\n\n\n---\n\n@*param* `drawable` — A drawable object.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "A drawable object.",
                            "finish": [
                                135,
                                36
                            ],
                            "name": "drawable",
                            "rawdesc": "A drawable object.",
                            "start": [
                                135,
                                28
                            ],
                            "type": "local",
                            "view": "love.Drawable"
                        },
                        {
                            "desc": "The position to draw the object (x-axis).",
                            "finish": [
                                135,
                                39
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the object (x-axis).",
                            "start": [
                                135,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the object (y-axis).",
                            "finish": [
                                135,
                                42
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the object (y-axis).",
                            "start": [
                                135,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                135,
                                45
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                135,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                135,
                                49
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                135,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                135,
                                53
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                135,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                135,
                                57
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                135,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                135,
                                61
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                135,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                135,
                                65
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                135,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                135,
                                69
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                135,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)\n\n\n---\n\n@*param* `drawable` — A drawable object.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        135,
                        74
                    ],
                    "rawdesc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)",
                    "start": [
                        135,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.draw(drawable: love.Drawable, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    135,
                    27
                ],
                "name": "draw",
                "rawdesc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)",
                "start": [
                    135,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)\n\n\n---\n\n@*param* `mesh` — The mesh to render.\n\n@*param* `instancecount` — The number of instances to render.\n\n@*param* `x` — The position to draw the instances (x-axis).\n\n@*param* `y` — The position to draw the instances (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "The mesh to render.",
                            "finish": [
                                159,
                                41
                            ],
                            "name": "mesh",
                            "rawdesc": "The mesh to render.",
                            "start": [
                                159,
                                37
                            ],
                            "type": "local",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The number of instances to render.",
                            "finish": [
                                159,
                                56
                            ],
                            "name": "instancecount",
                            "rawdesc": "The number of instances to render.",
                            "start": [
                                159,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the instances (x-axis).",
                            "finish": [
                                159,
                                59
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the instances (x-axis).",
                            "start": [
                                159,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the instances (y-axis).",
                            "finish": [
                                159,
                                62
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the instances (y-axis).",
                            "start": [
                                159,
                                61
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                159,
                                65
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                159,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                159,
                                69
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                159,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                159,
                                73
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                159,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                159,
                                77
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                159,
                                75
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                159,
                                81
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                159,
                                79
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                159,
                                85
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                159,
                                83
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                159,
                                89
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                159,
                                87
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)\n\n\n---\n\n@*param* `mesh` — The mesh to render.\n\n@*param* `instancecount` — The number of instances to render.\n\n@*param* `x` — The position to draw the instances (x-axis).\n\n@*param* `y` — The position to draw the instances (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        159,
                        94
                    ],
                    "rawdesc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)",
                    "start": [
                        159,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.drawInstanced(mesh: love.Mesh, instancecount: number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    159,
                    36
                ],
                "name": "drawInstanced",
                "rawdesc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)",
                "start": [
                    159,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)\n\n\n---\n\n@*param* `texture` — The Array Texture to draw.\n\n@*param* `layerindex` — The index of the layer to use when drawing.\n\n@*param* `x` — The position to draw the texture (x-axis).\n\n@*param* `y` — The position to draw the texture (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "The Array Texture to draw.",
                            "finish": [
                                181,
                                40
                            ],
                            "name": "texture",
                            "rawdesc": "The Array Texture to draw.",
                            "start": [
                                181,
                                33
                            ],
                            "type": "local",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The index of the layer to use when drawing.",
                            "finish": [
                                181,
                                52
                            ],
                            "name": "layerindex",
                            "rawdesc": "The index of the layer to use when drawing.",
                            "start": [
                                181,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the texture (x-axis).",
                            "finish": [
                                181,
                                55
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the texture (x-axis).",
                            "start": [
                                181,
                                54
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the texture (y-axis).",
                            "finish": [
                                181,
                                58
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the texture (y-axis).",
                            "start": [
                                181,
                                57
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                181,
                                61
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                181,
                                60
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                181,
                                65
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                181,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                181,
                                69
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                181,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                181,
                                73
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                181,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                181,
                                77
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                181,
                                75
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                181,
                                81
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                181,
                                79
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                181,
                                85
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                181,
                                83
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)\n\n\n---\n\n@*param* `texture` — The Array Texture to draw.\n\n@*param* `layerindex` — The index of the layer to use when drawing.\n\n@*param* `x` — The position to draw the texture (x-axis).\n\n@*param* `y` — The position to draw the texture (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        181,
                        90
                    ],
                    "rawdesc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)",
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.drawLayer(texture: love.Texture, layerindex: number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    181,
                    32
                ],
                "name": "drawLayer",
                "rawdesc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n@*param* `mode` — How to draw the ellipse.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radiusx` — The radius of the ellipse along the x-axis (half the ellipse's width).\n\n@*param* `radiusy` — The radius of the ellipse along the y-axis (half the ellipse's height).\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the ellipse.",
                            "finish": [
                                195,
                                35
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the ellipse.",
                            "start": [
                                195,
                                31
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of the center along x-axis.",
                            "finish": [
                                195,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The position of the center along x-axis.",
                            "start": [
                                195,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the center along y-axis.",
                            "finish": [
                                195,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The position of the center along y-axis.",
                            "start": [
                                195,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The radius of the ellipse along the x-axis (half the ellipse's width).",
                            "finish": [
                                195,
                                50
                            ],
                            "name": "radiusx",
                            "rawdesc": "The radius of the ellipse along the x-axis (half the ellipse's width).",
                            "start": [
                                195,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The radius of the ellipse along the y-axis (half the ellipse's height).",
                            "finish": [
                                195,
                                59
                            ],
                            "name": "radiusy",
                            "rawdesc": "The radius of the ellipse along the y-axis (half the ellipse's height).",
                            "start": [
                                195,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n@*param* `mode` — How to draw the ellipse.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radiusx` — The radius of the ellipse along the x-axis (half the ellipse's width).\n\n@*param* `radiusy` — The radius of the ellipse along the y-axis (half the ellipse's height).\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        195,
                        64
                    ],
                    "rawdesc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        195,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.ellipse(mode: \"fill\"|\"line\", x: number, y: number, radiusx: number, radiusy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    195,
                    30
                ],
                "name": "ellipse",
                "rawdesc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    195,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                "extends": {
                    "args": [],
                    "desc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                    "finish": [
                        209,
                        39
                    ],
                    "rawdesc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                    "start": [
                        209,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.flushBatch()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    209,
                    33
                ],
                "name": "flushBatch",
                "rawdesc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                "start": [
                    209,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                    "finish": [
                        223,
                        47
                    ],
                    "rawdesc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)",
                    "returns": [
                        {
                            "desc": "The red component (0-1).",
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        223,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getBackgroundColor()\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    223,
                    41
                ],
                "name": "getBackgroundColor",
                "rawdesc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)",
                "start": [
                    223,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n@*return* `mode` — The current blend mode.\n\n@*return* `alphamode` — The current blend alpha mode – it determines how the alpha of drawn objects affects blending.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n@*return* `mode` — The current blend mode.\n\n@*return* `alphamode` — The current blend alpha mode – it determines how the alpha of drawn objects affects blending.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                    "finish": [
                        233,
                        41
                    ],
                    "rawdesc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                    "returns": [
                        {
                            "desc": "The current blend mode.",
                            "name": "mode",
                            "rawdesc": "The current blend mode.",
                            "type": "function.return",
                            "view": "\"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)"
                        },
                        {
                            "desc": "The current blend alpha mode – it determines how the alpha of drawn objects affects blending.",
                            "name": "alphamode",
                            "rawdesc": "The current blend alpha mode – it determines how the alpha of drawn objects affects blending.",
                            "type": "function.return",
                            "view": "\"alphamultiply\"|\"premultiplied\""
                        }
                    ],
                    "start": [
                        233,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getBlendMode()\n  -> mode: \"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)\n  2. alphamode: \"alphamultiply\"|\"premultiplied\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    233,
                    35
                ],
                "name": "getBlendMode",
                "rawdesc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                "start": [
                    233,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)\n\n@*return* `canvas` — The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)\n\n@*return* `canvas` — The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                    "finish": [
                        242,
                        38
                    ],
                    "rawdesc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)",
                    "returns": [
                        {
                            "desc": "The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                            "name": "canvas",
                            "rawdesc": "The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                            "type": "function.return",
                            "view": "love.Canvas"
                        }
                    ],
                    "start": [
                        242,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getCanvas()\n  -> canvas: love.Canvas"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    242,
                    32
                ],
                "name": "getCanvas",
                "rawdesc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)",
                "start": [
                    242,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)\n\n\n---\n\n@*return* `formats` — A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)\n\n\n---\n\n@*return* `formats` — A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                    "finish": [
                        252,
                        45
                    ],
                    "rawdesc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)",
                    "returns": [
                        {
                            "desc": "A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "name": "formats",
                            "rawdesc": "A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        252,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getCanvasFormats()\n  -> formats: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    252,
                    39
                ],
                "name": "getCanvasFormats",
                "rawdesc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)",
                "start": [
                    252,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                    "finish": [
                        266,
                        37
                    ],
                    "rawdesc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)",
                    "returns": [
                        {
                            "desc": "The red component (0-1).",
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        266,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getColor()\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    266,
                    31
                ],
                "name": "getColor",
                "rawdesc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)",
                "start": [
                    266,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)\n\n@*return* `r` — Whether the red color component is active when rendering.\n\n@*return* `g` — Whether the green color component is active when rendering.\n\n@*return* `b` — Whether the blue color component is active when rendering.\n\n@*return* `a` — Whether the alpha color component is active when rendering.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)\n\n@*return* `r` — Whether the red color component is active when rendering.\n\n@*return* `g` — Whether the green color component is active when rendering.\n\n@*return* `b` — Whether the blue color component is active when rendering.\n\n@*return* `a` — Whether the alpha color component is active when rendering.",
                    "finish": [
                        280,
                        41
                    ],
                    "rawdesc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)",
                    "returns": [
                        {
                            "desc": "Whether the red color component is active when rendering.",
                            "name": "r",
                            "rawdesc": "Whether the red color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether the green color component is active when rendering.",
                            "name": "g",
                            "rawdesc": "Whether the green color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether the blue color component is active when rendering.",
                            "name": "b",
                            "rawdesc": "Whether the blue color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether the alpha color component is active when rendering.",
                            "name": "a",
                            "rawdesc": "Whether the alpha color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        280,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getColorMask()\n  -> r: boolean\n  2. g: boolean\n  3. b: boolean\n  4. a: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    280,
                    35
                ],
                "name": "getColorMask",
                "rawdesc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)",
                "start": [
                    280,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                    "finish": [
                        295,
                        40
                    ],
                    "rawdesc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)",
                    "returns": [
                        {
                            "desc": "The pixel scale factor associated with the window.",
                            "name": "scale",
                            "rawdesc": "The pixel scale factor associated with the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        295,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDPIScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    295,
                    34
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)",
                "start": [
                    295,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n@*return* `min` — Filter mode used when scaling the image down.\n\n@*return* `mag` — Filter mode used when scaling the image up.\n\n@*return* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n@*return* `min` — Filter mode used when scaling the image down.\n\n@*return* `mag` — Filter mode used when scaling the image up.\n\n@*return* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        306,
                        45
                    ],
                    "rawdesc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "Filter mode used when scaling the image down.",
                            "name": "min",
                            "rawdesc": "Filter mode used when scaling the image down.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode used when scaling the image up.",
                            "name": "mag",
                            "rawdesc": "Filter mode used when scaling the image up.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of Anisotropic Filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of Anisotropic Filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        306,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDefaultFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    306,
                    39
                ],
                "name": "getDefaultFilter",
                "rawdesc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    306,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n@*return* `comparemode` — Depth comparison mode used for depth testing.\n\n@*return* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n@*return* `comparemode` — Depth comparison mode used for depth testing.\n\n@*return* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        318,
                        41
                    ],
                    "rawdesc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "Depth comparison mode used for depth testing.",
                            "name": "comparemode",
                            "rawdesc": "Depth comparison mode used for depth testing.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "Whether to write update / write values to the depth buffer when rendering.",
                            "name": "write",
                            "rawdesc": "Whether to write update / write values to the depth buffer when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        318,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDepthMode()\n  -> comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)\n  2. write: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    318,
                    35
                ],
                "name": "getDepthMode",
                "rawdesc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    318,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)\n\n@*return* `width` — The width of the window.\n\n@*return* `height` — The height of the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)\n\n@*return* `width` — The width of the window.\n\n@*return* `height` — The height of the window.",
                    "finish": [
                        328,
                        42
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the window.",
                            "name": "width",
                            "rawdesc": "The width of the window.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the window.",
                            "name": "height",
                            "rawdesc": "The height of the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        328,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    328,
                    36
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)",
                "start": [
                    328,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)\n\n@*return* `font` — The current Font. Automatically creates and sets the default font, if none is set yet.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)\n\n@*return* `font` — The current Font. Automatically creates and sets the default font, if none is set yet.",
                    "finish": [
                        337,
                        36
                    ],
                    "rawdesc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)",
                    "returns": [
                        {
                            "desc": "The current Font. Automatically creates and sets the default font, if none is set yet.",
                            "name": "font",
                            "rawdesc": "The current Font. Automatically creates and sets the default font, if none is set yet.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        337,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getFont()\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    337,
                    30
                ],
                "name": "getFont",
                "rawdesc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)",
                "start": [
                    337,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n@*return* `winding` — The winding mode being used. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n@*return* `winding` — The winding mode being used. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "finish": [
                        348,
                        48
                    ],
                    "rawdesc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "returns": [
                        {
                            "desc": "The winding mode being used. The default winding is counterclockwise ('ccw').",
                            "name": "winding",
                            "rawdesc": "The winding mode being used. The default winding is counterclockwise ('ccw').",
                            "type": "function.return",
                            "view": "\"ccw\"|\"cw\""
                        }
                    ],
                    "start": [
                        348,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getFrontFaceWinding()\n  -> winding: \"ccw\"|\"cw\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    348,
                    42
                ],
                "name": "getFrontFaceWinding",
                "rawdesc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "start": [
                    348,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)\n\n@*return* `height` — The height of the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)\n\n@*return* `height` — The height of the window.",
                    "finish": [
                        357,
                        38
                    ],
                    "rawdesc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the window.",
                            "name": "height",
                            "rawdesc": "The height of the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        357,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    357,
                    32
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)",
                "start": [
                    357,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)\n\n@*return* `formats` — A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)\n\n@*return* `formats` — A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                    "finish": [
                        366,
                        44
                    ],
                    "rawdesc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)",
                    "returns": [
                        {
                            "desc": "A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "name": "formats",
                            "rawdesc": "A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        366,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getImageFormats()\n  -> formats: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    366,
                    38
                ],
                "name": "getImageFormats",
                "rawdesc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)",
                "start": [
                    366,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n@*return* `join` — The LineJoin style.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n@*return* `join` — The LineJoin style.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "finish": [
                        375,
                        40
                    ],
                    "rawdesc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "returns": [
                        {
                            "desc": "The LineJoin style.",
                            "name": "join",
                            "rawdesc": "The LineJoin style.",
                            "type": "function.return",
                            "view": "\"bevel\"|\"miter\"|\"none\""
                        }
                    ],
                    "start": [
                        375,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getLineJoin()\n  -> join: \"bevel\"|\"miter\"|\"none\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    375,
                    34
                ],
                "name": "getLineJoin",
                "rawdesc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "start": [
                    375,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n@*return* `style` — The current line style.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n@*return* `style` — The current line style.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "finish": [
                        384,
                        41
                    ],
                    "rawdesc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "returns": [
                        {
                            "desc": "The current line style.",
                            "name": "style",
                            "rawdesc": "The current line style.",
                            "type": "function.return",
                            "view": "\"rough\"|\"smooth\""
                        }
                    ],
                    "start": [
                        384,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getLineStyle()\n  -> style: \"rough\"|\"smooth\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    384,
                    35
                ],
                "name": "getLineStyle",
                "rawdesc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "start": [
                    384,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)\n\n@*return* `width` — The current line width.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)\n\n@*return* `width` — The current line width.",
                    "finish": [
                        393,
                        41
                    ],
                    "rawdesc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)",
                    "returns": [
                        {
                            "desc": "The current line width.",
                            "name": "width",
                            "rawdesc": "The current line width.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        393,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getLineWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    393,
                    35
                ],
                "name": "getLineWidth",
                "rawdesc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)",
                "start": [
                    393,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n@*return* `mode` — The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n@*return* `mode` — The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "finish": [
                        404,
                        44
                    ],
                    "rawdesc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "returns": [
                        {
                            "desc": "The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "name": "mode",
                            "rawdesc": "The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "type": "function.return",
                            "view": "\"back\"|\"front\"|\"none\""
                        }
                    ],
                    "start": [
                        404,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getMeshCullMode()\n  -> mode: \"back\"|\"front\"|\"none\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    404,
                    38
                ],
                "name": "getMeshCullMode",
                "rawdesc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "start": [
                    404,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the window in pixels.\n\n@*return* `pixelheight` — The height of the window in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the window in pixels.\n\n@*return* `pixelheight` — The height of the window in pixels.",
                    "finish": [
                        416,
                        47
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the window in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the window in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        416,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPixelDimensions()\n  -> pixelwidth: number\n  2. pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    416,
                    41
                ],
                "name": "getPixelDimensions",
                "rawdesc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)",
                "start": [
                    416,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)\n\n@*return* `pixelheight` — The height of the window in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)\n\n@*return* `pixelheight` — The height of the window in pixels.",
                    "finish": [
                        427,
                        43
                    ],
                    "rawdesc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)",
                    "returns": [
                        {
                            "desc": "The height of the window in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        427,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPixelHeight()\n  -> pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    427,
                    37
                ],
                "name": "getPixelHeight",
                "rawdesc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)",
                "start": [
                    427,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)\n\n@*return* `pixelwidth` — The width of the window in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)\n\n@*return* `pixelwidth` — The width of the window in pixels.",
                    "finish": [
                        438,
                        42
                    ],
                    "rawdesc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)",
                    "returns": [
                        {
                            "desc": "The width of the window in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        438,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPixelWidth()\n  -> pixelwidth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    438,
                    36
                ],
                "name": "getPixelWidth",
                "rawdesc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)",
                "start": [
                    438,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)\n\n@*return* `size` — The current point size.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)\n\n@*return* `size` — The current point size.",
                    "finish": [
                        447,
                        41
                    ],
                    "rawdesc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)",
                    "returns": [
                        {
                            "desc": "The current point size.",
                            "name": "size",
                            "rawdesc": "The current point size.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        447,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPointSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    447,
                    35
                ],
                "name": "getPointSize",
                "rawdesc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)",
                "start": [
                    447,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)\n\n@*return* `name` — The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.\n\n@*return* `version` — The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.\n\n@*return* `vendor` — The name of the graphics card vendor, e.g. 'Intel Inc'.\n\n@*return* `device` — The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                "extends": {
                    "args": [],
                    "desc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)\n\n@*return* `name` — The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.\n\n@*return* `version` — The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.\n\n@*return* `vendor` — The name of the graphics card vendor, e.g. 'Intel Inc'.\n\n@*return* `device` — The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                    "finish": [
                        459,
                        44
                    ],
                    "rawdesc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)",
                    "returns": [
                        {
                            "desc": "The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.",
                            "name": "name",
                            "rawdesc": "The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.",
                            "name": "version",
                            "rawdesc": "The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "The name of the graphics card vendor, e.g. 'Intel Inc'.",
                            "name": "vendor",
                            "rawdesc": "The name of the graphics card vendor, e.g. 'Intel Inc'.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                            "name": "device",
                            "rawdesc": "The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        459,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getRendererInfo()\n  -> name: string\n  2. version: string\n  3. vendor: string\n  4. device: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    459,
                    38
                ],
                "name": "getRendererInfo",
                "rawdesc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)",
                "start": [
                    459,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)\n\n@*return* `x` — The x-component of the top-left point of the box.\n\n@*return* `y` — The y-component of the top-left point of the box.\n\n@*return* `width` — The width of the box.\n\n@*return* `height` — The height of the box.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)\n\n@*return* `x` — The x-component of the top-left point of the box.\n\n@*return* `y` — The y-component of the top-left point of the box.\n\n@*return* `width` — The width of the box.\n\n@*return* `height` — The height of the box.",
                    "finish": [
                        471,
                        39
                    ],
                    "rawdesc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)",
                    "returns": [
                        {
                            "desc": "The x-component of the top-left point of the box.",
                            "name": "x",
                            "rawdesc": "The x-component of the top-left point of the box.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the top-left point of the box.",
                            "name": "y",
                            "rawdesc": "The y-component of the top-left point of the box.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the box.",
                            "name": "width",
                            "rawdesc": "The width of the box.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the box.",
                            "name": "height",
                            "rawdesc": "The height of the box.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        471,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getScissor()\n  -> x: number\n  2. y: number\n  3. width: number\n  4. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    471,
                    33
                ],
                "name": "getScissor",
                "rawdesc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)",
                "start": [
                    471,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)\n\n@*return* `shader` — The currently active Shader, or nil if none is set.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)\n\n@*return* `shader` — The currently active Shader, or nil if none is set.",
                    "finish": [
                        480,
                        38
                    ],
                    "rawdesc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)",
                    "returns": [
                        {
                            "desc": "The currently active Shader, or nil if none is set.",
                            "name": "shader",
                            "rawdesc": "The currently active Shader, or nil if none is set.",
                            "type": "function.return",
                            "view": "love.Shader"
                        }
                    ],
                    "start": [
                        480,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getShader()\n  -> shader: love.Shader"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    480,
                    32
                ],
                "name": "getShader",
                "rawdesc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)",
                "start": [
                    480,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)\n\n@*return* `depth` — The current depth of the transform and state love.graphics stack.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)\n\n@*return* `depth` — The current depth of the transform and state love.graphics stack.",
                    "finish": [
                        489,
                        42
                    ],
                    "rawdesc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)",
                    "returns": [
                        {
                            "desc": "The current depth of the transform and state love.graphics stack.",
                            "name": "depth",
                            "rawdesc": "The current depth of the transform and state love.graphics stack.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        489,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getStackDepth()\n  -> depth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    489,
                    36
                ],
                "name": "getStackDepth",
                "rawdesc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)",
                "start": [
                    489,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)\n\n\n---\n\n@*return* `stats` — A table with the following fields:",
                "extends": {
                    "args": [],
                    "desc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)\n\n\n---\n\n@*return* `stats` — A table with the following fields:",
                    "finish": [
                        499,
                        37
                    ],
                    "rawdesc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)",
                    "returns": [
                        {
                            "desc": "A table with the following fields:",
                            "name": "stats",
                            "rawdesc": "A table with the following fields:",
                            "type": "function.return",
                            "view": "{ drawcalls: number, canvasswitches: number, texturememory: number, images: number, canvases: number, fonts: number, shaderswitches: number, drawcallsbatched: number }"
                        }
                    ],
                    "start": [
                        499,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getStats()\n  -> stats: { drawcalls: number, canvasswitches: number, texturememory: number, images: number, canvases: number, fonts: number, shaderswitches: number, drawcallsbatched: number }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    499,
                    31
                ],
                "name": "getStats",
                "rawdesc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)",
                "start": [
                    499,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n@*return* `comparemode` — The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.\n\n@*return* `comparevalue` — The value used when comparing with the stencil value of each pixel.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n@*return* `comparemode` — The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.\n\n@*return* `comparevalue` — The value used when comparing with the stencil value of each pixel.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        513,
                        43
                    ],
                    "rawdesc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.",
                            "name": "comparemode",
                            "rawdesc": "The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "The value used when comparing with the stencil value of each pixel.",
                            "name": "comparevalue",
                            "rawdesc": "The value used when comparing with the stencil value of each pixel.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        513,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getStencilTest()\n  -> comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)\n  2. comparevalue: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    513,
                    37
                ],
                "name": "getStencilTest",
                "rawdesc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    513,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)\n\n@*return* `features` — A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)\n\n@*return* `features` — A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                    "finish": [
                        524,
                        41
                    ],
                    "rawdesc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)",
                    "returns": [
                        {
                            "desc": "A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                            "name": "features",
                            "rawdesc": "A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        524,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getSupported()\n  -> features: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    524,
                    35
                ],
                "name": "getSupported",
                "rawdesc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)",
                "start": [
                    524,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)\n\n@*return* `limits` — A table containing GraphicsLimit keys, and number values.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)\n\n@*return* `limits` — A table containing GraphicsLimit keys, and number values.",
                    "finish": [
                        533,
                        44
                    ],
                    "rawdesc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)",
                    "returns": [
                        {
                            "desc": "A table containing GraphicsLimit keys, and number values.",
                            "name": "limits",
                            "rawdesc": "A table containing GraphicsLimit keys, and number values.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        533,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getSystemLimits()\n  -> limits: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    533,
                    38
                ],
                "name": "getSystemLimits",
                "rawdesc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)",
                "start": [
                    533,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)\n\n@*return* `texturetypes` — A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)\n\n@*return* `texturetypes` — A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                    "finish": [
                        542,
                        44
                    ],
                    "rawdesc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)",
                    "returns": [
                        {
                            "desc": "A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                            "name": "texturetypes",
                            "rawdesc": "A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        542,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getTextureTypes()\n  -> texturetypes: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    542,
                    38
                ],
                "name": "getTextureTypes",
                "rawdesc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)",
                "start": [
                    542,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)\n\n@*return* `width` — The width of the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)\n\n@*return* `width` — The width of the window.",
                    "finish": [
                        551,
                        37
                    ],
                    "rawdesc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the window.",
                            "name": "width",
                            "rawdesc": "The width of the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        551,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    551,
                    31
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)",
                "start": [
                    551,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)\n\n@*param* `x` — The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `y` — The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `width` — The width of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `height` — The height of the rectangle to intersect with the existing scissor rectangle.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                41
                            ],
                            "name": "x",
                            "rawdesc": "The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                44
                            ],
                            "name": "y",
                            "rawdesc": "The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                51
                            ],
                            "name": "width",
                            "rawdesc": "The width of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                59
                            ],
                            "name": "height",
                            "rawdesc": "The height of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)\n\n@*param* `x` — The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `y` — The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `width` — The width of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `height` — The height of the rectangle to intersect with the existing scissor rectangle.",
                    "finish": [
                        569,
                        64
                    ],
                    "rawdesc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)",
                    "start": [
                        569,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.intersectScissor(x: number, y: number, width: number, height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    569,
                    39
                ],
                "name": "intersectScissor",
                "rawdesc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)",
                "start": [
                    569,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)\n\n@*param* `screenX` — The x component of the screen-space position.\n\n@*param* `screenY` — The y component of the screen-space position.\n\n@*return* `globalX` — The x component of the position in global coordinates.\n\n@*return* `globalY` — The y component of the position in global coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x component of the screen-space position.",
                            "finish": [
                                583,
                                52
                            ],
                            "name": "screenX",
                            "rawdesc": "The x component of the screen-space position.",
                            "start": [
                                583,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the screen-space position.",
                            "finish": [
                                583,
                                61
                            ],
                            "name": "screenY",
                            "rawdesc": "The y component of the screen-space position.",
                            "start": [
                                583,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)\n\n@*param* `screenX` — The x component of the screen-space position.\n\n@*param* `screenY` — The y component of the screen-space position.\n\n@*return* `globalX` — The x component of the position in global coordinates.\n\n@*return* `globalY` — The y component of the position in global coordinates.",
                    "finish": [
                        583,
                        66
                    ],
                    "rawdesc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)",
                    "returns": [
                        {
                            "desc": "The x component of the position in global coordinates.",
                            "name": "globalX",
                            "rawdesc": "The x component of the position in global coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position in global coordinates.",
                            "name": "globalY",
                            "rawdesc": "The y component of the position in global coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        583,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.inverseTransformPoint(screenX: number, screenY: number)\n  -> globalX: number\n  2. globalY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    583,
                    44
                ],
                "name": "inverseTransformPoint",
                "rawdesc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)",
                "start": [
                    583,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)\n\n@*return* `active` — Whether the graphics module is active and able to be used.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)\n\n@*return* `active` — Whether the graphics module is active and able to be used.",
                    "finish": [
                        593,
                        37
                    ],
                    "rawdesc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)",
                    "returns": [
                        {
                            "desc": "Whether the graphics module is active and able to be used.",
                            "name": "active",
                            "rawdesc": "Whether the graphics module is active and able to be used.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        593,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.isActive()\n  -> active: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    593,
                    31
                ],
                "name": "isActive",
                "rawdesc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)",
                "start": [
                    593,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)\n\n@*return* `gammacorrect` — True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)\n\n@*return* `gammacorrect` — True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                    "finish": [
                        604,
                        43
                    ],
                    "rawdesc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)",
                    "returns": [
                        {
                            "desc": "True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                            "name": "gammacorrect",
                            "rawdesc": "True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        604,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.isGammaCorrect()\n  -> gammacorrect: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    604,
                    37
                ],
                "name": "isGammaCorrect",
                "rawdesc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)",
                "start": [
                    604,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)\n\n@*return* `wireframe` — True if wireframe lines are used when drawing, false if it's not.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)\n\n@*return* `wireframe` — True if wireframe lines are used when drawing, false if it's not.",
                    "finish": [
                        613,
                        40
                    ],
                    "rawdesc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)",
                    "returns": [
                        {
                            "desc": "True if wireframe lines are used when drawing, false if it's not.",
                            "name": "wireframe",
                            "rawdesc": "True if wireframe lines are used when drawing, false if it's not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        613,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.isWireframe()\n  -> wireframe: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    613,
                    34
                ],
                "name": "isWireframe",
                "rawdesc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)",
                "start": [
                    613,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)\n\n\n---\n\n@*param* `x1` — The position of first point on the x-axis.\n\n@*param* `y1` — The position of first point on the y-axis.\n\n@*param* `x2` — The position of second point on the x-axis.\n\n@*param* `y2` — The position of second point on the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The position of first point on the x-axis.",
                            "finish": [
                                627,
                                30
                            ],
                            "name": "x1",
                            "rawdesc": "The position of first point on the x-axis.",
                            "start": [
                                627,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of first point on the y-axis.",
                            "finish": [
                                627,
                                34
                            ],
                            "name": "y1",
                            "rawdesc": "The position of first point on the y-axis.",
                            "start": [
                                627,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of second point on the x-axis.",
                            "finish": [
                                627,
                                38
                            ],
                            "name": "x2",
                            "rawdesc": "The position of second point on the x-axis.",
                            "start": [
                                627,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of second point on the y-axis.",
                            "finish": [
                                627,
                                42
                            ],
                            "name": "y2",
                            "rawdesc": "The position of second point on the y-axis.",
                            "start": [
                                627,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                627,
                                47
                            ],
                            "start": [
                                627,
                                44
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)\n\n\n---\n\n@*param* `x1` — The position of first point on the x-axis.\n\n@*param* `y1` — The position of first point on the y-axis.\n\n@*param* `x2` — The position of second point on the x-axis.\n\n@*param* `y2` — The position of second point on the y-axis.",
                    "finish": [
                        627,
                        52
                    ],
                    "rawdesc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)",
                    "start": [
                        627,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.line(x1: number, y1: number, x2: number, y2: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    627,
                    27
                ],
                "name": "line",
                "rawdesc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)",
                "start": [
                    627,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)\n\n@*param* `slices` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.\n\n@*param* `settings` — Optional table of settings to configure the array image, containing the following fields:\n\n@*return* `image` — An Array Image object.",
                "extends": {
                    "args": [
                        {
                            "desc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.",
                            "finish": [
                                644,
                                43
                            ],
                            "name": "slices",
                            "rawdesc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.",
                            "start": [
                                644,
                                37
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Optional table of settings to configure the array image, containing the following fields:",
                            "finish": [
                                644,
                                53
                            ],
                            "name": "settings",
                            "rawdesc": "Optional table of settings to configure the array image, containing the following fields:",
                            "start": [
                                644,
                                45
                            ],
                            "type": "local",
                            "view": "{ mipmaps: boolean, linear: boolean, dpiscale: number }?"
                        }
                    ],
                    "desc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)\n\n@*param* `slices` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.\n\n@*param* `settings` — Optional table of settings to configure the array image, containing the following fields:\n\n@*return* `image` — An Array Image object.",
                    "finish": [
                        644,
                        58
                    ],
                    "rawdesc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)",
                    "returns": [
                        {
                            "desc": "An Array Image object.",
                            "name": "image",
                            "rawdesc": "An Array Image object.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        644,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newArrayImage(slices: table, settings?: { mipmaps: boolean, linear: boolean, dpiscale: number })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    644,
                    36
                ],
                "name": "newArrayImage",
                "rawdesc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)",
                "start": [
                    644,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)\n\n\n---\n\n@*return* `canvas` — A new Canvas with dimensions equal to the window's size in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)\n\n\n---\n\n@*return* `canvas` — A new Canvas with dimensions equal to the window's size in pixels.",
                    "finish": [
                        656,
                        38
                    ],
                    "rawdesc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)",
                    "returns": [
                        {
                            "desc": "A new Canvas with dimensions equal to the window's size in pixels.",
                            "name": "canvas",
                            "rawdesc": "A new Canvas with dimensions equal to the window's size in pixels.",
                            "type": "function.return",
                            "view": "love.Canvas"
                        }
                    ],
                    "start": [
                        656,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newCanvas()\n  -> canvas: love.Canvas"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    656,
                    32
                ],
                "name": "newCanvas",
                "rawdesc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)",
                "start": [
                    656,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)\n\n\n---\n\n@*param* `filename` — The filepath to a cubemap image file (or a File, FileData, or ImageData).\n\n@*param* `settings` — Optional table of settings to configure the cubemap image, containing the following fields:\n\n@*return* `image` — An cubemap Image object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to a cubemap image file (or a File, FileData, or ImageData).",
                            "finish": [
                                710,
                                44
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to a cubemap image file (or a File, FileData, or ImageData).",
                            "start": [
                                710,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Optional table of settings to configure the cubemap image, containing the following fields:",
                            "finish": [
                                710,
                                54
                            ],
                            "name": "settings",
                            "rawdesc": "Optional table of settings to configure the cubemap image, containing the following fields:",
                            "start": [
                                710,
                                46
                            ],
                            "type": "local",
                            "view": "{ mipmaps: boolean, linear: boolean }?"
                        }
                    ],
                    "desc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)\n\n\n---\n\n@*param* `filename` — The filepath to a cubemap image file (or a File, FileData, or ImageData).\n\n@*param* `settings` — Optional table of settings to configure the cubemap image, containing the following fields:\n\n@*return* `image` — An cubemap Image object.",
                    "finish": [
                        710,
                        59
                    ],
                    "rawdesc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)",
                    "returns": [
                        {
                            "desc": "An cubemap Image object.",
                            "name": "image",
                            "rawdesc": "An cubemap Image object.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        710,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newCubeImage(filename: string, settings?: { mipmaps: boolean, linear: boolean })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    710,
                    35
                ],
                "name": "newCubeImage",
                "rawdesc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)",
                "start": [
                    710,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)\n\n\n---\n\n@*param* `filename` — The filepath to the BMFont or TrueType font file.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the BMFont or TrueType font file.",
                            "finish": [
                                725,
                                39
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the BMFont or TrueType font file.",
                            "start": [
                                725,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)\n\n\n---\n\n@*param* `filename` — The filepath to the BMFont or TrueType font file.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                    "finish": [
                        725,
                        44
                    ],
                    "rawdesc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)",
                    "returns": [
                        {
                            "desc": "A Font object which can be used to draw text on screen.",
                            "name": "font",
                            "rawdesc": "A Font object which can be used to draw text on screen.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        725,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newFont(filename: string)\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    725,
                    30
                ],
                "name": "newFont",
                "rawdesc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)",
                "start": [
                    725,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `settings` — A table containing the following fields:\n\n@*return* `image` — A new Image object which can be drawn on screen.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the image file.",
                            "finish": [
                                739,
                                40
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the image file.",
                            "start": [
                                739,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A table containing the following fields:",
                            "finish": [
                                739,
                                50
                            ],
                            "name": "settings",
                            "rawdesc": "A table containing the following fields:",
                            "start": [
                                739,
                                42
                            ],
                            "type": "local",
                            "view": "{ dpiscale: number, linear: boolean, mipmaps: boolean }?"
                        }
                    ],
                    "desc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `settings` — A table containing the following fields:\n\n@*return* `image` — A new Image object which can be drawn on screen.",
                    "finish": [
                        739,
                        55
                    ],
                    "rawdesc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)",
                    "returns": [
                        {
                            "desc": "A new Image object which can be drawn on screen.",
                            "name": "image",
                            "rawdesc": "A new Image object which can be drawn on screen.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        739,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newImage(filename: string, settings?: { dpiscale: number, linear: boolean, mipmaps: boolean })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    739,
                    31
                ],
                "name": "newImage",
                "rawdesc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)",
                "start": [
                    739,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `glyphs` — A string of the characters in the image in order from left to right.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the image file.",
                            "finish": [
                                754,
                                44
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the image file.",
                            "start": [
                                754,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A string of the characters in the image in order from left to right.",
                            "finish": [
                                754,
                                52
                            ],
                            "name": "glyphs",
                            "rawdesc": "A string of the characters in the image in order from left to right.",
                            "start": [
                                754,
                                46
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `glyphs` — A string of the characters in the image in order from left to right.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                    "finish": [
                        754,
                        57
                    ],
                    "rawdesc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)",
                    "returns": [
                        {
                            "desc": "A Font object which can be used to draw text on screen.",
                            "name": "font",
                            "rawdesc": "A Font object which can be used to draw text on screen.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        754,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newImageFont(filename: string, glyphs: string)\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    754,
                    35
                ],
                "name": "newImageFont",
                "rawdesc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)",
                "start": [
                    754,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n@*param* `vertices` — The table filled with vertex information tables for each vertex as follows:\n\n@*param* `mode` — How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.\n\n@*param* `usage` — The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.\n\n@*return* `mesh` — The new mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The table filled with vertex information tables for each vertex as follows:",
                            "finish": [
                                774,
                                39
                            ],
                            "name": "vertices",
                            "rawdesc": "The table filled with vertex information tables for each vertex as follows:",
                            "start": [
                                774,
                                31
                            ],
                            "type": "local",
                            "view": "{ [\"1\"]: number, [\"2\"]: number, [\"3\"]: number, [\"4\"]: number, [\"5\"]: number, [\"6\"]: number, [\"7\"]: number, [\"8\"]: number }"
                        },
                        {
                            "desc": "How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.",
                            "finish": [
                                774,
                                45
                            ],
                            "name": "mode",
                            "rawdesc": "How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.",
                            "start": [
                                774,
                                41
                            ],
                            "type": "local",
                            "view": "(\"fan\"|\"points\"|\"strip\"|\"triangles\")?"
                        },
                        {
                            "desc": "The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.",
                            "finish": [
                                774,
                                52
                            ],
                            "name": "usage",
                            "rawdesc": "The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.",
                            "start": [
                                774,
                                47
                            ],
                            "type": "local",
                            "view": "(\"dynamic\"|\"static\"|\"stream\")?"
                        }
                    ],
                    "desc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n@*param* `vertices` — The table filled with vertex information tables for each vertex as follows:\n\n@*param* `mode` — How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.\n\n@*param* `usage` — The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.\n\n@*return* `mesh` — The new mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                    "finish": [
                        774,
                        57
                    ],
                    "rawdesc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                    "returns": [
                        {
                            "desc": "The new mesh.",
                            "name": "mesh",
                            "rawdesc": "The new mesh.",
                            "type": "function.return",
                            "view": "love.Mesh"
                        }
                    ],
                    "start": [
                        774,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newMesh(vertices: { [\"1\"]: number, [\"2\"]: number, [\"3\"]: number, [\"4\"]: number, [\"5\"]: number, [\"6\"]: number, [\"7\"]: number, [\"8\"]: number }, mode?: \"fan\"|\"points\"|\"strip\"|\"triangles\", usage?: \"dynamic\"|\"static\"|\"stream\")\n  -> mesh: love.Mesh"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    774,
                    30
                ],
                "name": "newMesh",
                "rawdesc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                "start": [
                    774,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)\n\n\n---\n\n@*param* `image` — The image to use.\n\n@*param* `buffer` — The max number of particles at the same time.\n\n@*return* `system` — A new ParticleSystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "The image to use.",
                            "finish": [
                                786,
                                46
                            ],
                            "name": "image",
                            "rawdesc": "The image to use.",
                            "start": [
                                786,
                                41
                            ],
                            "type": "local",
                            "view": "love.Image"
                        },
                        {
                            "desc": "The max number of particles at the same time.",
                            "finish": [
                                786,
                                54
                            ],
                            "name": "buffer",
                            "rawdesc": "The max number of particles at the same time.",
                            "start": [
                                786,
                                48
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)\n\n\n---\n\n@*param* `image` — The image to use.\n\n@*param* `buffer` — The max number of particles at the same time.\n\n@*return* `system` — A new ParticleSystem.",
                    "finish": [
                        786,
                        59
                    ],
                    "rawdesc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)",
                    "returns": [
                        {
                            "desc": "A new ParticleSystem.",
                            "name": "system",
                            "rawdesc": "A new ParticleSystem.",
                            "type": "function.return",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "start": [
                        786,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newParticleSystem(image: love.Image, buffer?: number)\n  -> system: love.ParticleSystem"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    786,
                    40
                ],
                "name": "newParticleSystem",
                "rawdesc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)",
                "start": [
                    786,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)\n\n\n---\n\n@*param* `x` — The top-left position in the Image along the x-axis.\n\n@*param* `y` — The top-left position in the Image along the y-axis.\n\n@*param* `width` — The width of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `height` — The height of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `sw` — The reference width, the width of the Image. (Must be greater than 0.)\n\n@*param* `sh` — The reference height, the height of the Image. (Must be greater than 0.)\n\n@*return* `quad` — The new Quad.",
                "extends": {
                    "args": [
                        {
                            "desc": "The top-left position in the Image along the x-axis.",
                            "finish": [
                                804,
                                32
                            ],
                            "name": "x",
                            "rawdesc": "The top-left position in the Image along the x-axis.",
                            "start": [
                                804,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The top-left position in the Image along the y-axis.",
                            "finish": [
                                804,
                                35
                            ],
                            "name": "y",
                            "rawdesc": "The top-left position in the Image along the y-axis.",
                            "start": [
                                804,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the Quad in the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                42
                            ],
                            "name": "width",
                            "rawdesc": "The width of the Quad in the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Quad in the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                50
                            ],
                            "name": "height",
                            "rawdesc": "The height of the Quad in the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The reference width, the width of the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                54
                            ],
                            "name": "sw",
                            "rawdesc": "The reference width, the width of the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The reference height, the height of the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                58
                            ],
                            "name": "sh",
                            "rawdesc": "The reference height, the height of the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)\n\n\n---\n\n@*param* `x` — The top-left position in the Image along the x-axis.\n\n@*param* `y` — The top-left position in the Image along the y-axis.\n\n@*param* `width` — The width of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `height` — The height of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `sw` — The reference width, the width of the Image. (Must be greater than 0.)\n\n@*param* `sh` — The reference height, the height of the Image. (Must be greater than 0.)\n\n@*return* `quad` — The new Quad.",
                    "finish": [
                        804,
                        63
                    ],
                    "rawdesc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)",
                    "returns": [
                        {
                            "desc": "The new Quad.",
                            "name": "quad",
                            "rawdesc": "The new Quad.",
                            "type": "function.return",
                            "view": "love.Quad"
                        }
                    ],
                    "start": [
                        804,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newQuad(x: number, y: number, width: number, height: number, sw: number, sh: number)\n  -> quad: love.Quad"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    804,
                    30
                ],
                "name": "newQuad",
                "rawdesc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)",
                "start": [
                    804,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)\n\n\n---\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `shader` — A Shader object for use in drawing operations.",
                "extends": {
                    "args": [
                        {
                            "desc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "finish": [
                                817,
                                37
                            ],
                            "name": "code",
                            "rawdesc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "start": [
                                817,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)\n\n\n---\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `shader` — A Shader object for use in drawing operations.",
                    "finish": [
                        817,
                        42
                    ],
                    "rawdesc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)",
                    "returns": [
                        {
                            "desc": "A Shader object for use in drawing operations.",
                            "name": "shader",
                            "rawdesc": "A Shader object for use in drawing operations.",
                            "type": "function.return",
                            "view": "love.Shader"
                        }
                    ],
                    "start": [
                        817,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newShader(code: string)\n  -> shader: love.Shader"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    817,
                    32
                ],
                "name": "newShader",
                "rawdesc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)",
                "start": [
                    817,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)\n\n\n---\n\n@*param* `image` — The Image to use for the sprites.\n\n@*param* `maxsprites` — The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.\n\n@*return* `spriteBatch` — The new SpriteBatch.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Image to use for the sprites.",
                            "finish": [
                                830,
                                43
                            ],
                            "name": "image",
                            "rawdesc": "The Image to use for the sprites.",
                            "start": [
                                830,
                                38
                            ],
                            "type": "local",
                            "view": "love.Image"
                        },
                        {
                            "desc": "The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.",
                            "finish": [
                                830,
                                55
                            ],
                            "name": "maxsprites",
                            "rawdesc": "The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.",
                            "start": [
                                830,
                                45
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)\n\n\n---\n\n@*param* `image` — The Image to use for the sprites.\n\n@*param* `maxsprites` — The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.\n\n@*return* `spriteBatch` — The new SpriteBatch.",
                    "finish": [
                        830,
                        60
                    ],
                    "rawdesc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)",
                    "returns": [
                        {
                            "desc": "The new SpriteBatch.",
                            "name": "spriteBatch",
                            "rawdesc": "The new SpriteBatch.",
                            "type": "function.return",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "start": [
                        830,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newSpriteBatch(image: love.Image, maxsprites?: number)\n  -> spriteBatch: love.SpriteBatch"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    830,
                    37
                ],
                "name": "newSpriteBatch",
                "rawdesc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)",
                "start": [
                    830,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)\n\n\n---\n\n@*param* `font` — The font to use for the text.\n\n@*param* `textstring` — The initial string of text that the new Text object will contain. May be nil.\n\n@*return* `text` — The new drawable Text object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The font to use for the text.",
                            "finish": [
                                842,
                                35
                            ],
                            "name": "font",
                            "rawdesc": "The font to use for the text.",
                            "start": [
                                842,
                                31
                            ],
                            "type": "local",
                            "view": "love.Font"
                        },
                        {
                            "desc": "The initial string of text that the new Text object will contain. May be nil.",
                            "finish": [
                                842,
                                47
                            ],
                            "name": "textstring",
                            "rawdesc": "The initial string of text that the new Text object will contain. May be nil.",
                            "start": [
                                842,
                                37
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)\n\n\n---\n\n@*param* `font` — The font to use for the text.\n\n@*param* `textstring` — The initial string of text that the new Text object will contain. May be nil.\n\n@*return* `text` — The new drawable Text object.",
                    "finish": [
                        842,
                        52
                    ],
                    "rawdesc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)",
                    "returns": [
                        {
                            "desc": "The new drawable Text object.",
                            "name": "text",
                            "rawdesc": "The new drawable Text object.",
                            "type": "function.return",
                            "view": "love.Text"
                        }
                    ],
                    "start": [
                        842,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newText(font: love.Font, textstring?: string)\n  -> text: love.Text"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    842,
                    30
                ],
                "name": "newText",
                "rawdesc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)",
                "start": [
                    842,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `video` — A new Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file path to the Ogg Theora video file.",
                            "finish": [
                                856,
                                40
                            ],
                            "name": "filename",
                            "rawdesc": "The file path to the Ogg Theora video file.",
                            "start": [
                                856,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `video` — A new Video.",
                    "finish": [
                        856,
                        45
                    ],
                    "rawdesc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)",
                    "returns": [
                        {
                            "desc": "A new Video.",
                            "name": "video",
                            "rawdesc": "A new Video.",
                            "type": "function.return",
                            "view": "love.Video"
                        }
                    ],
                    "start": [
                        856,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newVideo(filename: string)\n  -> video: love.Video"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    856,
                    31
                ],
                "name": "newVideo",
                "rawdesc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)",
                "start": [
                    856,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)\n\n@*param* `layers` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.\n\n@*param* `settings` — Optional table of settings to configure the volume image, containing the following fields:\n\n@*return* `image` — A volume Image object.",
                "extends": {
                    "args": [
                        {
                            "desc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.",
                            "finish": [
                                875,
                                44
                            ],
                            "name": "layers",
                            "rawdesc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.",
                            "start": [
                                875,
                                38
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Optional table of settings to configure the volume image, containing the following fields:",
                            "finish": [
                                875,
                                54
                            ],
                            "name": "settings",
                            "rawdesc": "Optional table of settings to configure the volume image, containing the following fields:",
                            "start": [
                                875,
                                46
                            ],
                            "type": "local",
                            "view": "{ mipmaps: boolean, linear: boolean }?"
                        }
                    ],
                    "desc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)\n\n@*param* `layers` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.\n\n@*param* `settings` — Optional table of settings to configure the volume image, containing the following fields:\n\n@*return* `image` — A volume Image object.",
                    "finish": [
                        875,
                        59
                    ],
                    "rawdesc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)",
                    "returns": [
                        {
                            "desc": "A volume Image object.",
                            "name": "image",
                            "rawdesc": "A volume Image object.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        875,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newVolumeImage(layers: table, settings?: { mipmaps: boolean, linear: boolean })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    875,
                    37
                ],
                "name": "newVolumeImage",
                "rawdesc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)",
                "start": [
                    875,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                "extends": {
                    "args": [],
                    "desc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                    "finish": [
                        885,
                        35
                    ],
                    "rawdesc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                    "start": [
                        885,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.origin()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    885,
                    29
                ],
                "name": "origin",
                "rawdesc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                "start": [
                    885,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)\n\n\n---\n\n@*param* `x` — The position of the first point on the x-axis.\n\n@*param* `y` — The position of the first point on the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The position of the first point on the x-axis.",
                            "finish": [
                                898,
                                31
                            ],
                            "name": "x",
                            "rawdesc": "The position of the first point on the x-axis.",
                            "start": [
                                898,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the first point on the y-axis.",
                            "finish": [
                                898,
                                34
                            ],
                            "name": "y",
                            "rawdesc": "The position of the first point on the y-axis.",
                            "start": [
                                898,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                898,
                                39
                            ],
                            "start": [
                                898,
                                36
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)\n\n\n---\n\n@*param* `x` — The position of the first point on the x-axis.\n\n@*param* `y` — The position of the first point on the y-axis.",
                    "finish": [
                        898,
                        44
                    ],
                    "rawdesc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)",
                    "start": [
                        898,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.points(x: number, y: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    898,
                    29
                ],
                "name": "points",
                "rawdesc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)",
                "start": [
                    898,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n@*param* `mode` — How to draw the polygon.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the polygon.",
                            "finish": [
                                911,
                                35
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the polygon.",
                            "start": [
                                911,
                                31
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "finish": [
                                911,
                                40
                            ],
                            "start": [
                                911,
                                37
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n@*param* `mode` — How to draw the polygon.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        911,
                        45
                    ],
                    "rawdesc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        911,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.polygon(mode: \"fill\"|\"line\", ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    911,
                    30
                ],
                "name": "polygon",
                "rawdesc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    911,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                "extends": {
                    "args": [],
                    "desc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                    "finish": [
                        921,
                        32
                    ],
                    "rawdesc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                    "start": [
                        921,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.pop()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    921,
                    26
                ],
                "name": "pop",
                "rawdesc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                "start": [
                    921,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                "extends": {
                    "args": [],
                    "desc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                    "finish": [
                        931,
                        36
                    ],
                    "rawdesc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                    "start": [
                        931,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.present()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    931,
                    30
                ],
                "name": "present",
                "rawdesc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                "start": [
                    931,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)\n\n\n---\n\n@*param* `text` — The text to draw.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "The text to draw.",
                            "finish": [
                                964,
                                33
                            ],
                            "name": "text",
                            "rawdesc": "The text to draw.",
                            "start": [
                                964,
                                29
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "desc": "The position to draw the object (x-axis).",
                            "finish": [
                                964,
                                36
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the object (x-axis).",
                            "start": [
                                964,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the object (y-axis).",
                            "finish": [
                                964,
                                39
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the object (y-axis).",
                            "start": [
                                964,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                964,
                                42
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                964,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                964,
                                46
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                964,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                964,
                                50
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                964,
                                48
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                964,
                                54
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                964,
                                52
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                964,
                                58
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                964,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                964,
                                62
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                964,
                                60
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                964,
                                66
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                964,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)\n\n\n---\n\n@*param* `text` — The text to draw.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        964,
                        71
                    ],
                    "rawdesc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)",
                    "start": [
                        964,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.print(text: string|number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    964,
                    28
                ],
                "name": "print",
                "rawdesc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)",
                "start": [
                    964,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n@*param* `text` — A text string.\n\n@*param* `x` — The position on the x-axis.\n\n@*param* `y` — The position on the y-axis.\n\n@*param* `limit` — Wrap the line after this many horizontal pixels.\n\n@*param* `align` — The alignment.\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "A text string.",
                            "finish": [
                                1002,
                                34
                            ],
                            "name": "text",
                            "rawdesc": "A text string.",
                            "start": [
                                1002,
                                30
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "desc": "The position on the x-axis.",
                            "finish": [
                                1002,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "The position on the x-axis.",
                            "start": [
                                1002,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the y-axis.",
                            "finish": [
                                1002,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "The position on the y-axis.",
                            "start": [
                                1002,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Wrap the line after this many horizontal pixels.",
                            "finish": [
                                1002,
                                47
                            ],
                            "name": "limit",
                            "rawdesc": "Wrap the line after this many horizontal pixels.",
                            "start": [
                                1002,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alignment.",
                            "finish": [
                                1002,
                                54
                            ],
                            "name": "align",
                            "rawdesc": "The alignment.",
                            "start": [
                                1002,
                                49
                            ],
                            "type": "local",
                            "view": "(\"center\"|\"justify\"|\"left\"|\"right\")?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                1002,
                                57
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                1002,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                1002,
                                61
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                1002,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                1002,
                                65
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                1002,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                1002,
                                69
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                1002,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                1002,
                                73
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                1002,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                1002,
                                77
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                1002,
                                75
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                1002,
                                81
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                1002,
                                79
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n@*param* `text` — A text string.\n\n@*param* `x` — The position on the x-axis.\n\n@*param* `y` — The position on the y-axis.\n\n@*param* `limit` — Wrap the line after this many horizontal pixels.\n\n@*param* `align` — The alignment.\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "finish": [
                        1002,
                        86
                    ],
                    "rawdesc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "start": [
                        1002,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.printf(text: string|number, x: number, y: number, limit: number, align?: \"center\"|\"justify\"|\"left\"|\"right\", r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1002,
                    29
                ],
                "name": "printf",
                "rawdesc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "start": [
                    1002,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                "extends": {
                    "args": [],
                    "desc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                    "finish": [
                        1013,
                        33
                    ],
                    "rawdesc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                    "start": [
                        1013,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.push()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1013,
                    27
                ],
                "name": "push",
                "rawdesc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                "start": [
                    1013,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n@*param* `mode` — How to draw the rectangle.\n\n@*param* `x` — The position of top-left corner along the x-axis.\n\n@*param* `y` — The position of top-left corner along the y-axis.\n\n@*param* `width` — Width of the rectangle.\n\n@*param* `height` — Height of the rectangle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the rectangle.",
                            "finish": [
                                1027,
                                37
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the rectangle.",
                            "start": [
                                1027,
                                33
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of top-left corner along the x-axis.",
                            "finish": [
                                1027,
                                40
                            ],
                            "name": "x",
                            "rawdesc": "The position of top-left corner along the x-axis.",
                            "start": [
                                1027,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of top-left corner along the y-axis.",
                            "finish": [
                                1027,
                                43
                            ],
                            "name": "y",
                            "rawdesc": "The position of top-left corner along the y-axis.",
                            "start": [
                                1027,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Width of the rectangle.",
                            "finish": [
                                1027,
                                50
                            ],
                            "name": "width",
                            "rawdesc": "Width of the rectangle.",
                            "start": [
                                1027,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Height of the rectangle.",
                            "finish": [
                                1027,
                                58
                            ],
                            "name": "height",
                            "rawdesc": "Height of the rectangle.",
                            "start": [
                                1027,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n@*param* `mode` — How to draw the rectangle.\n\n@*param* `x` — The position of top-left corner along the x-axis.\n\n@*param* `y` — The position of top-left corner along the y-axis.\n\n@*param* `width` — Width of the rectangle.\n\n@*param* `height` — Height of the rectangle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        1027,
                        63
                    ],
                    "rawdesc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        1027,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.rectangle(mode: \"fill\"|\"line\", x: number, y: number, width: number, height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1027,
                    32
                ],
                "name": "rectangle",
                "rawdesc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    1027,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)\n\n@*param* `transform` — The Transform object to replace the current graphics coordinate transform with.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Transform object to replace the current graphics coordinate transform with.",
                            "finish": [
                                1036,
                                49
                            ],
                            "name": "transform",
                            "rawdesc": "The Transform object to replace the current graphics coordinate transform with.",
                            "start": [
                                1036,
                                40
                            ],
                            "type": "local",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)\n\n@*param* `transform` — The Transform object to replace the current graphics coordinate transform with.",
                    "finish": [
                        1036,
                        54
                    ],
                    "rawdesc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)",
                    "start": [
                        1036,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.replaceTransform(transform: love.Transform)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1036,
                    39
                ],
                "name": "replaceTransform",
                "rawdesc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)",
                "start": [
                    1036,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                "extends": {
                    "args": [],
                    "desc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                    "finish": [
                        1046,
                        34
                    ],
                    "rawdesc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                    "start": [
                        1046,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.reset()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1046,
                    28
                ],
                "name": "reset",
                "rawdesc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                "start": [
                    1046,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)\n\n@*param* `angle` — The amount to rotate the coordinate system in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "The amount to rotate the coordinate system in radians.",
                            "finish": [
                                1057,
                                35
                            ],
                            "name": "angle",
                            "rawdesc": "The amount to rotate the coordinate system in radians.",
                            "start": [
                                1057,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)\n\n@*param* `angle` — The amount to rotate the coordinate system in radians.",
                    "finish": [
                        1057,
                        40
                    ],
                    "rawdesc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)",
                    "start": [
                        1057,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.rotate(angle: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1057,
                    29
                ],
                "name": "rotate",
                "rawdesc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)",
                "start": [
                    1057,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)\n\n@*param* `sx` — The scaling in the direction of the x-axis.\n\n@*param* `sy` — The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                "extends": {
                    "args": [
                        {
                            "desc": "The scaling in the direction of the x-axis.",
                            "finish": [
                                1075,
                                31
                            ],
                            "name": "sx",
                            "rawdesc": "The scaling in the direction of the x-axis.",
                            "start": [
                                1075,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                            "finish": [
                                1075,
                                35
                            ],
                            "name": "sy",
                            "rawdesc": "The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                            "start": [
                                1075,
                                33
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)\n\n@*param* `sx` — The scaling in the direction of the x-axis.\n\n@*param* `sy` — The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                    "finish": [
                        1075,
                        40
                    ],
                    "rawdesc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)",
                    "start": [
                        1075,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.scale(sx: number, sy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1075,
                    28
                ],
                "name": "scale",
                "rawdesc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)",
                "start": [
                    1075,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)\n\n\n---\n\n@*param* `red` — The red component (0-1).\n\n@*param* `green` — The green component (0-1).\n\n@*param* `blue` — The blue component (0-1).\n\n@*param* `alpha` — The alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "The red component (0-1).",
                            "finish": [
                                1088,
                                45
                            ],
                            "name": "red",
                            "rawdesc": "The red component (0-1).",
                            "start": [
                                1088,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "finish": [
                                1088,
                                52
                            ],
                            "name": "green",
                            "rawdesc": "The green component (0-1).",
                            "start": [
                                1088,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "finish": [
                                1088,
                                58
                            ],
                            "name": "blue",
                            "rawdesc": "The blue component (0-1).",
                            "start": [
                                1088,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "finish": [
                                1088,
                                65
                            ],
                            "name": "alpha",
                            "rawdesc": "The alpha component (0-1).",
                            "start": [
                                1088,
                                60
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)\n\n\n---\n\n@*param* `red` — The red component (0-1).\n\n@*param* `green` — The green component (0-1).\n\n@*param* `blue` — The blue component (0-1).\n\n@*param* `alpha` — The alpha component (0-1).",
                    "finish": [
                        1088,
                        70
                    ],
                    "rawdesc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)",
                    "start": [
                        1088,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setBackgroundColor(red: number, green: number, blue: number, alpha?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1088,
                    41
                ],
                "name": "setBackgroundColor",
                "rawdesc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)",
                "start": [
                    1088,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n@*param* `mode` — The blend mode to use.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The blend mode to use.",
                            "finish": [
                                1098,
                                40
                            ],
                            "name": "mode",
                            "rawdesc": "The blend mode to use.",
                            "start": [
                                1098,
                                36
                            ],
                            "type": "local",
                            "view": "\"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)"
                        }
                    ],
                    "desc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n@*param* `mode` — The blend mode to use.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                    "finish": [
                        1098,
                        45
                    ],
                    "rawdesc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                    "start": [
                        1098,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setBlendMode(mode: \"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1098,
                    35
                ],
                "name": "setBlendMode",
                "rawdesc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                "start": [
                    1098,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)\n\n\n---\n\n@*param* `canvas` — The new target.\n\n@*param* `mipmap` — The mipmap level to render to, for Canvases with mipmaps.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new target.",
                            "finish": [
                                1112,
                                39
                            ],
                            "name": "canvas",
                            "rawdesc": "The new target.",
                            "start": [
                                1112,
                                33
                            ],
                            "type": "local",
                            "view": "love.Canvas"
                        },
                        {
                            "desc": "The mipmap level to render to, for Canvases with mipmaps.",
                            "finish": [
                                1112,
                                47
                            ],
                            "name": "mipmap",
                            "rawdesc": "The mipmap level to render to, for Canvases with mipmaps.",
                            "start": [
                                1112,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)\n\n\n---\n\n@*param* `canvas` — The new target.\n\n@*param* `mipmap` — The mipmap level to render to, for Canvases with mipmaps.",
                    "finish": [
                        1112,
                        52
                    ],
                    "rawdesc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)",
                    "start": [
                        1112,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setCanvas(canvas: love.Canvas, mipmap?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1112,
                    32
                ],
                "name": "setCanvas",
                "rawdesc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)",
                "start": [
                    1112,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)\n\n\n---\n\n@*param* `red` — The amount of red.\n\n@*param* `green` — The amount of green.\n\n@*param* `blue` — The amount of blue.\n\n@*param* `alpha` — The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                "extends": {
                    "args": [
                        {
                            "desc": "The amount of red.",
                            "finish": [
                                1127,
                                35
                            ],
                            "name": "red",
                            "rawdesc": "The amount of red.",
                            "start": [
                                1127,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of green.",
                            "finish": [
                                1127,
                                42
                            ],
                            "name": "green",
                            "rawdesc": "The amount of green.",
                            "start": [
                                1127,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of blue.",
                            "finish": [
                                1127,
                                48
                            ],
                            "name": "blue",
                            "rawdesc": "The amount of blue.",
                            "start": [
                                1127,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                            "finish": [
                                1127,
                                55
                            ],
                            "name": "alpha",
                            "rawdesc": "The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                            "start": [
                                1127,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)\n\n\n---\n\n@*param* `red` — The amount of red.\n\n@*param* `green` — The amount of green.\n\n@*param* `blue` — The amount of blue.\n\n@*param* `alpha` — The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                    "finish": [
                        1127,
                        60
                    ],
                    "rawdesc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)",
                    "start": [
                        1127,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setColor(red: number, green: number, blue: number, alpha?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1127,
                    31
                ],
                "name": "setColor",
                "rawdesc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)",
                "start": [
                    1127,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)\n\n\n---\n\n@*param* `red` — Render red component.\n\n@*param* `green` — Render green component.\n\n@*param* `blue` — Render blue component.\n\n@*param* `alpha` — Render alpha component.",
                "extends": {
                    "args": [
                        {
                            "desc": "Render red component.",
                            "finish": [
                                1140,
                                39
                            ],
                            "name": "red",
                            "rawdesc": "Render red component.",
                            "start": [
                                1140,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Render green component.",
                            "finish": [
                                1140,
                                46
                            ],
                            "name": "green",
                            "rawdesc": "Render green component.",
                            "start": [
                                1140,
                                41
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Render blue component.",
                            "finish": [
                                1140,
                                52
                            ],
                            "name": "blue",
                            "rawdesc": "Render blue component.",
                            "start": [
                                1140,
                                48
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Render alpha component.",
                            "finish": [
                                1140,
                                59
                            ],
                            "name": "alpha",
                            "rawdesc": "Render alpha component.",
                            "start": [
                                1140,
                                54
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)\n\n\n---\n\n@*param* `red` — Render red component.\n\n@*param* `green` — Render green component.\n\n@*param* `blue` — Render blue component.\n\n@*param* `alpha` — Render alpha component.",
                    "finish": [
                        1140,
                        64
                    ],
                    "rawdesc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)",
                    "start": [
                        1140,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1140,
                    35
                ],
                "name": "setColorMask",
                "rawdesc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)",
                "start": [
                    1140,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n@*param* `min` — Filter mode used when scaling the image down.\n\n@*param* `mag` — Filter mode used when scaling the image up.\n\n@*param* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Filter mode used when scaling the image down.",
                            "finish": [
                                1151,
                                43
                            ],
                            "name": "min",
                            "rawdesc": "Filter mode used when scaling the image down.",
                            "start": [
                                1151,
                                40
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode used when scaling the image up.",
                            "finish": [
                                1151,
                                48
                            ],
                            "name": "mag",
                            "rawdesc": "Filter mode used when scaling the image up.",
                            "start": [
                                1151,
                                45
                            ],
                            "type": "local",
                            "view": "(\"linear\"|\"nearest\")?"
                        },
                        {
                            "desc": "Maximum amount of Anisotropic Filtering used.",
                            "finish": [
                                1151,
                                60
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of Anisotropic Filtering used.",
                            "start": [
                                1151,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n@*param* `min` — Filter mode used when scaling the image down.\n\n@*param* `mag` — Filter mode used when scaling the image up.\n\n@*param* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        1151,
                        65
                    ],
                    "rawdesc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        1151,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setDefaultFilter(min: \"linear\"|\"nearest\", mag?: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1151,
                    39
                ],
                "name": "setDefaultFilter",
                "rawdesc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    1151,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n@*param* `comparemode` — Depth comparison mode used for depth testing.\n\n@*param* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Depth comparison mode used for depth testing.",
                            "finish": [
                                1164,
                                47
                            ],
                            "name": "comparemode",
                            "rawdesc": "Depth comparison mode used for depth testing.",
                            "start": [
                                1164,
                                36
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "Whether to write update / write values to the depth buffer when rendering.",
                            "finish": [
                                1164,
                                54
                            ],
                            "name": "write",
                            "rawdesc": "Whether to write update / write values to the depth buffer when rendering.",
                            "start": [
                                1164,
                                49
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n@*param* `comparemode` — Depth comparison mode used for depth testing.\n\n@*param* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        1164,
                        59
                    ],
                    "rawdesc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        1164,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setDepthMode(comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3), write: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1164,
                    35
                ],
                "name": "setDepthMode",
                "rawdesc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    1164,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)\n\n@*param* `font` — The Font object to use.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Font object to use.",
                            "finish": [
                                1175,
                                35
                            ],
                            "name": "font",
                            "rawdesc": "The Font object to use.",
                            "start": [
                                1175,
                                31
                            ],
                            "type": "local",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)\n\n@*param* `font` — The Font object to use.",
                    "finish": [
                        1175,
                        40
                    ],
                    "rawdesc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)",
                    "start": [
                        1175,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setFont(font: love.Font)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1175,
                    30
                ],
                "name": "setFont",
                "rawdesc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)",
                "start": [
                    1175,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n@*param* `winding` — The winding mode to use. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The winding mode to use. The default winding is counterclockwise ('ccw').",
                            "finish": [
                                1186,
                                50
                            ],
                            "name": "winding",
                            "rawdesc": "The winding mode to use. The default winding is counterclockwise ('ccw').",
                            "start": [
                                1186,
                                43
                            ],
                            "type": "local",
                            "view": "\"ccw\"|\"cw\""
                        }
                    ],
                    "desc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n@*param* `winding` — The winding mode to use. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "finish": [
                        1186,
                        55
                    ],
                    "rawdesc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "start": [
                        1186,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setFrontFaceWinding(winding: \"ccw\"|\"cw\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1186,
                    42
                ],
                "name": "setFrontFaceWinding",
                "rawdesc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "start": [
                    1186,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n@*param* `join` — The LineJoin to use.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The LineJoin to use.",
                            "finish": [
                                1195,
                                39
                            ],
                            "name": "join",
                            "rawdesc": "The LineJoin to use.",
                            "start": [
                                1195,
                                35
                            ],
                            "type": "local",
                            "view": "\"bevel\"|\"miter\"|\"none\""
                        }
                    ],
                    "desc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n@*param* `join` — The LineJoin to use.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "finish": [
                        1195,
                        44
                    ],
                    "rawdesc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "start": [
                        1195,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setLineJoin(join: \"bevel\"|\"miter\"|\"none\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1195,
                    34
                ],
                "name": "setLineJoin",
                "rawdesc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "start": [
                    1195,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n@*param* `style` — The LineStyle to use. Line styles include smooth and rough.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The LineStyle to use. Line styles include smooth and rough.",
                            "finish": [
                                1204,
                                41
                            ],
                            "name": "style",
                            "rawdesc": "The LineStyle to use. Line styles include smooth and rough.",
                            "start": [
                                1204,
                                36
                            ],
                            "type": "local",
                            "view": "\"rough\"|\"smooth\""
                        }
                    ],
                    "desc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n@*param* `style` — The LineStyle to use. Line styles include smooth and rough.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "finish": [
                        1204,
                        46
                    ],
                    "rawdesc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "start": [
                        1204,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setLineStyle(style: \"rough\"|\"smooth\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1204,
                    35
                ],
                "name": "setLineStyle",
                "rawdesc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "start": [
                    1204,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)\n\n@*param* `width` — The width of the line.",
                "extends": {
                    "args": [
                        {
                            "desc": "The width of the line.",
                            "finish": [
                                1213,
                                41
                            ],
                            "name": "width",
                            "rawdesc": "The width of the line.",
                            "start": [
                                1213,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)\n\n@*param* `width` — The width of the line.",
                    "finish": [
                        1213,
                        46
                    ],
                    "rawdesc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)",
                    "start": [
                        1213,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setLineWidth(width: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1213,
                    35
                ],
                "name": "setLineWidth",
                "rawdesc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)",
                "start": [
                    1213,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n@*param* `mode` — The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "finish": [
                                1226,
                                43
                            ],
                            "name": "mode",
                            "rawdesc": "The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "start": [
                                1226,
                                39
                            ],
                            "type": "local",
                            "view": "\"back\"|\"front\"|\"none\""
                        }
                    ],
                    "desc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n@*param* `mode` — The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "finish": [
                        1226,
                        48
                    ],
                    "rawdesc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "start": [
                        1226,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setMeshCullMode(mode: \"back\"|\"front\"|\"none\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1226,
                    38
                ],
                "name": "setMeshCullMode",
                "rawdesc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "start": [
                    1226,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)\n\n\n---\n\n@*param* `size` — The size of the font.\n\n@*return* `font` — The new font.",
                "extends": {
                    "args": [
                        {
                            "desc": "The size of the font.",
                            "finish": [
                                1240,
                                38
                            ],
                            "name": "size",
                            "rawdesc": "The size of the font.",
                            "start": [
                                1240,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)\n\n\n---\n\n@*param* `size` — The size of the font.\n\n@*return* `font` — The new font.",
                    "finish": [
                        1240,
                        43
                    ],
                    "rawdesc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)",
                    "returns": [
                        {
                            "desc": "The new font.",
                            "name": "font",
                            "rawdesc": "The new font.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        1240,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setNewFont(size?: number)\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1240,
                    33
                ],
                "name": "setNewFont",
                "rawdesc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)",
                "start": [
                    1240,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)\n\n@*param* `size` — The new point size.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new point size.",
                            "finish": [
                                1249,
                                40
                            ],
                            "name": "size",
                            "rawdesc": "The new point size.",
                            "start": [
                                1249,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)\n\n@*param* `size` — The new point size.",
                    "finish": [
                        1249,
                        45
                    ],
                    "rawdesc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)",
                    "start": [
                        1249,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setPointSize(size: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1249,
                    35
                ],
                "name": "setPointSize",
                "rawdesc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)",
                "start": [
                    1249,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)\n\n\n---\n\n@*param* `x` — x coordinate of upper left corner.\n\n@*param* `y` — y coordinate of upper left corner.\n\n@*param* `width` — width of clipping rectangle.\n\n@*param* `height` — height of clipping rectangle.",
                "extends": {
                    "args": [
                        {
                            "desc": "x coordinate of upper left corner.",
                            "finish": [
                                1266,
                                35
                            ],
                            "name": "x",
                            "rawdesc": "x coordinate of upper left corner.",
                            "start": [
                                1266,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "y coordinate of upper left corner.",
                            "finish": [
                                1266,
                                38
                            ],
                            "name": "y",
                            "rawdesc": "y coordinate of upper left corner.",
                            "start": [
                                1266,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "width of clipping rectangle.",
                            "finish": [
                                1266,
                                45
                            ],
                            "name": "width",
                            "rawdesc": "width of clipping rectangle.",
                            "start": [
                                1266,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "height of clipping rectangle.",
                            "finish": [
                                1266,
                                53
                            ],
                            "name": "height",
                            "rawdesc": "height of clipping rectangle.",
                            "start": [
                                1266,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)\n\n\n---\n\n@*param* `x` — x coordinate of upper left corner.\n\n@*param* `y` — y coordinate of upper left corner.\n\n@*param* `width` — width of clipping rectangle.\n\n@*param* `height` — height of clipping rectangle.",
                    "finish": [
                        1266,
                        58
                    ],
                    "rawdesc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)",
                    "start": [
                        1266,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setScissor(x: number, y: number, width: number, height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1266,
                    33
                ],
                "name": "setScissor",
                "rawdesc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)",
                "start": [
                    1266,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)\n\n\n---\n\n@*param* `shader` — The new shader.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new shader.",
                            "finish": [
                                1276,
                                39
                            ],
                            "name": "shader",
                            "rawdesc": "The new shader.",
                            "start": [
                                1276,
                                33
                            ],
                            "type": "local",
                            "view": "love.Shader"
                        }
                    ],
                    "desc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)\n\n\n---\n\n@*param* `shader` — The new shader.",
                    "finish": [
                        1276,
                        44
                    ],
                    "rawdesc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)",
                    "start": [
                        1276,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setShader(shader: love.Shader)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1276,
                    32
                ],
                "name": "setShader",
                "rawdesc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)",
                "start": [
                    1276,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n@*param* `comparemode` — The type of comparison to make for each pixel.\n\n@*param* `comparevalue` — The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The type of comparison to make for each pixel.",
                            "finish": [
                                1289,
                                49
                            ],
                            "name": "comparemode",
                            "rawdesc": "The type of comparison to make for each pixel.",
                            "start": [
                                1289,
                                38
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.",
                            "finish": [
                                1289,
                                63
                            ],
                            "name": "comparevalue",
                            "rawdesc": "The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.",
                            "start": [
                                1289,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n@*param* `comparemode` — The type of comparison to make for each pixel.\n\n@*param* `comparevalue` — The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        1289,
                        68
                    ],
                    "rawdesc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        1289,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setStencilTest(comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3), comparevalue: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1289,
                    37
                ],
                "name": "setStencilTest",
                "rawdesc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    1289,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)\n\n@*param* `enable` — True to enable wireframe mode when drawing, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable wireframe mode when drawing, false to disable it.",
                            "finish": [
                                1298,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable wireframe mode when drawing, false to disable it.",
                            "start": [
                                1298,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)\n\n@*param* `enable` — True to enable wireframe mode when drawing, false to disable it.",
                    "finish": [
                        1298,
                        47
                    ],
                    "rawdesc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)",
                    "start": [
                        1298,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setWireframe(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1298,
                    35
                ],
                "name": "setWireframe",
                "rawdesc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)",
                "start": [
                    1298,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)\n\n@*param* `kx` — The shear factor on the x-axis.\n\n@*param* `ky` — The shear factor on the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The shear factor on the x-axis.",
                            "finish": [
                                1308,
                                31
                            ],
                            "name": "kx",
                            "rawdesc": "The shear factor on the x-axis.",
                            "start": [
                                1308,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shear factor on the y-axis.",
                            "finish": [
                                1308,
                                35
                            ],
                            "name": "ky",
                            "rawdesc": "The shear factor on the y-axis.",
                            "start": [
                                1308,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)\n\n@*param* `kx` — The shear factor on the x-axis.\n\n@*param* `ky` — The shear factor on the y-axis.",
                    "finish": [
                        1308,
                        40
                    ],
                    "rawdesc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)",
                    "start": [
                        1308,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.shear(kx: number, ky: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1308,
                    28
                ],
                "name": "shear",
                "rawdesc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)",
                "start": [
                    1308,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n@*param* `stencilfunction` — Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.\n\n@*param* `action` — How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.\n\n@*param* `value` — The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.\n\n@*param* `keepvalues` — True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.",
                            "finish": [
                                1324,
                                46
                            ],
                            "name": "stencilfunction",
                            "rawdesc": "Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.",
                            "start": [
                                1324,
                                31
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "desc": "How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.",
                            "finish": [
                                1324,
                                54
                            ],
                            "name": "action",
                            "rawdesc": "How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.",
                            "start": [
                                1324,
                                48
                            ],
                            "type": "local",
                            "view": "(\"decrement\"|\"decrementwrap\"|\"increment\"|\"incrementwrap\"|\"invert\"...(+1))?"
                        },
                        {
                            "desc": "The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.",
                            "finish": [
                                1324,
                                61
                            ],
                            "name": "value",
                            "rawdesc": "The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.",
                            "start": [
                                1324,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.",
                            "finish": [
                                1324,
                                73
                            ],
                            "name": "keepvalues",
                            "rawdesc": "True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.",
                            "start": [
                                1324,
                                63
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n@*param* `stencilfunction` — Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.\n\n@*param* `action` — How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.\n\n@*param* `value` — The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.\n\n@*param* `keepvalues` — True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                    "finish": [
                        1324,
                        78
                    ],
                    "rawdesc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                    "start": [
                        1324,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.stencil(stencilfunction: function, action?: \"decrement\"|\"decrementwrap\"|\"increment\"|\"incrementwrap\"|\"invert\"...(+1), value?: number, keepvalues?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1324,
                    30
                ],
                "name": "stencil",
                "rawdesc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                "start": [
                    1324,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)\n\n@*param* `globalX` — The x component of the position in global coordinates.\n\n@*param* `globalY` — The y component of the position in global coordinates.\n\n@*return* `screenX` — The x component of the position with graphics transformations applied.\n\n@*return* `screenY` — The y component of the position with graphics transformations applied.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x component of the position in global coordinates.",
                            "finish": [
                                1338,
                                45
                            ],
                            "name": "globalX",
                            "rawdesc": "The x component of the position in global coordinates.",
                            "start": [
                                1338,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position in global coordinates.",
                            "finish": [
                                1338,
                                54
                            ],
                            "name": "globalY",
                            "rawdesc": "The y component of the position in global coordinates.",
                            "start": [
                                1338,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)\n\n@*param* `globalX` — The x component of the position in global coordinates.\n\n@*param* `globalY` — The y component of the position in global coordinates.\n\n@*return* `screenX` — The x component of the position with graphics transformations applied.\n\n@*return* `screenY` — The y component of the position with graphics transformations applied.",
                    "finish": [
                        1338,
                        59
                    ],
                    "rawdesc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)",
                    "returns": [
                        {
                            "desc": "The x component of the position with graphics transformations applied.",
                            "name": "screenX",
                            "rawdesc": "The x component of the position with graphics transformations applied.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position with graphics transformations applied.",
                            "name": "screenY",
                            "rawdesc": "The y component of the position with graphics transformations applied.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1338,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.transformPoint(globalX: number, globalY: number)\n  -> screenX: number\n  2. screenY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1338,
                    37
                ],
                "name": "transformPoint",
                "rawdesc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)",
                "start": [
                    1338,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)\n\n@*param* `dx` — The translation relative to the x-axis.\n\n@*param* `dy` — The translation relative to the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The translation relative to the x-axis.",
                            "finish": [
                                1356,
                                35
                            ],
                            "name": "dx",
                            "rawdesc": "The translation relative to the x-axis.",
                            "start": [
                                1356,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation relative to the y-axis.",
                            "finish": [
                                1356,
                                39
                            ],
                            "name": "dy",
                            "rawdesc": "The translation relative to the y-axis.",
                            "start": [
                                1356,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)\n\n@*param* `dx` — The translation relative to the x-axis.\n\n@*param* `dy` — The translation relative to the y-axis.",
                    "finish": [
                        1356,
                        44
                    ],
                    "rawdesc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)",
                    "start": [
                        1356,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.translate(dx: number, dy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1356,
                    32
                ],
                "name": "translate",
                "rawdesc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)",
                "start": [
                    1356,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)\n\n\n---\n\n@*param* `gles` — Validate code as GLSL ES shader.\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `status` — true if specified shader code doesn't contain any errors. false otherwise.\n\n@*return* `message` — Reason why shader code validation failed (or nil if validation succeded).",
                "extends": {
                    "args": [
                        {
                            "desc": "Validate code as GLSL ES shader.",
                            "finish": [
                                1369,
                                42
                            ],
                            "name": "gles",
                            "rawdesc": "Validate code as GLSL ES shader.",
                            "start": [
                                1369,
                                38
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "finish": [
                                1369,
                                48
                            ],
                            "name": "code",
                            "rawdesc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "start": [
                                1369,
                                44
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)\n\n\n---\n\n@*param* `gles` — Validate code as GLSL ES shader.\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `status` — true if specified shader code doesn't contain any errors. false otherwise.\n\n@*return* `message` — Reason why shader code validation failed (or nil if validation succeded).",
                    "finish": [
                        1369,
                        53
                    ],
                    "rawdesc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)",
                    "returns": [
                        {
                            "desc": "true if specified shader code doesn't contain any errors. false otherwise.",
                            "name": "status",
                            "rawdesc": "true if specified shader code doesn't contain any errors. false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Reason why shader code validation failed (or nil if validation succeded).",
                            "name": "message",
                            "rawdesc": "Reason why shader code validation failed (or nil if validation succeded).",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        1369,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.validateShader(gles: boolean, code: string)\n  -> status: boolean\n  2. message: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1369,
                    37
                ],
                "name": "validateShader",
                "rawdesc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)",
                "start": [
                    1369,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics",
        "type": "type",
        "view": "love.graphics"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "extends": {
                    "desc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "finish": [
                        15,
                        18
                    ],
                    "rawdesc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                    "start": [
                        15,
                        16
                    ],
                    "type": "table",
                    "view": "love.graphics"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    15,
                    13
                ],
                "name": "graphics",
                "rawdesc": "\nThe primary responsibility for the love.graphics module is the drawing of lines, shapes, text, Images and other Drawable objects onto the screen. Its secondary responsibilities include loading external files (including Images and Fonts) into memory, creating specialized objects (such as ParticleSystems or Canvases) and managing screen geometry.\n\nLÖVE's coordinate system is rooted in the upper-left corner of the screen, which is at location (0, 0). The x axis is horizontal: larger values are further to the right. The y axis is vertical: larger values are further towards the bottom.\n\nIn many cases, you draw images or shapes in terms of their upper-left corner.\n\nMany of the functions are used to manipulate the graphics coordinate system, which is essentially the way coordinates are mapped to the display. You can change the position, scale, and even rotation in this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics)\n",
                "start": [
                    15,
                    0
                ],
                "type": "setfield",
                "view": "love.graphics",
                "visible": "public"
            }
        ],
        "name": "love.graphics",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)\n\n@*param* `transform` — The Transform object to apply to the current graphics coordinate transform.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Transform object to apply to the current graphics coordinate transform.",
                            "finish": [
                                26,
                                47
                            ],
                            "name": "transform",
                            "rawdesc": "The Transform object to apply to the current graphics coordinate transform.",
                            "start": [
                                26,
                                38
                            ],
                            "type": "local",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)\n\n@*param* `transform` — The Transform object to apply to the current graphics coordinate transform.",
                    "finish": [
                        26,
                        52
                    ],
                    "rawdesc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)",
                    "start": [
                        26,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.applyTransform(transform: love.Transform)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    26,
                    37
                ],
                "name": "applyTransform",
                "rawdesc": "\nApplies the given Transform object to the current coordinate transformation.\n\nThis effectively multiplies the existing coordinate transformation's matrix with the Transform object's internal matrix to produce the new coordinate transformation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.applyTransform)",
                "start": [
                    26,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.applyTransform",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n@*param* `drawmode` — How to draw the arc.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — Radius of the arc.\n\n@*param* `angle1` — The angle at which the arc begins.\n\n@*param* `angle2` — The angle at which the arc terminates.\n\n@*param* `segments` — The number of segments used for drawing the arc.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the arc.",
                            "finish": [
                                42,
                                35
                            ],
                            "name": "drawmode",
                            "rawdesc": "How to draw the arc.",
                            "start": [
                                42,
                                27
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of the center along x-axis.",
                            "finish": [
                                42,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The position of the center along x-axis.",
                            "start": [
                                42,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the center along y-axis.",
                            "finish": [
                                42,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The position of the center along y-axis.",
                            "start": [
                                42,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Radius of the arc.",
                            "finish": [
                                42,
                                49
                            ],
                            "name": "radius",
                            "rawdesc": "Radius of the arc.",
                            "start": [
                                42,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The angle at which the arc begins.",
                            "finish": [
                                42,
                                57
                            ],
                            "name": "angle1",
                            "rawdesc": "The angle at which the arc begins.",
                            "start": [
                                42,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The angle at which the arc terminates.",
                            "finish": [
                                42,
                                65
                            ],
                            "name": "angle2",
                            "rawdesc": "The angle at which the arc terminates.",
                            "start": [
                                42,
                                59
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The number of segments used for drawing the arc.",
                            "finish": [
                                42,
                                75
                            ],
                            "name": "segments",
                            "rawdesc": "The number of segments used for drawing the arc.",
                            "start": [
                                42,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n@*param* `drawmode` — How to draw the arc.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — Radius of the arc.\n\n@*param* `angle1` — The angle at which the arc begins.\n\n@*param* `angle2` — The angle at which the arc terminates.\n\n@*param* `segments` — The number of segments used for drawing the arc.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        42,
                        80
                    ],
                    "rawdesc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.arc(drawmode: \"fill\"|\"line\", x: number, y: number, radius: number, angle1: number, angle2: number, segments?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    42,
                    26
                ],
                "name": "arc",
                "rawdesc": "\nDraws a filled or unfilled arc at position (x, y). The arc is drawn from angle1 to angle2 in radians. The segments parameter determines how many segments are used to draw the arc. The more segments, the smoother the edge.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.arc)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \ndrawmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.arc",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)\n\n\n---\n\n@*param* `filename` — The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                            "finish": [
                                55,
                                49
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                            "start": [
                                55,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)\n\n\n---\n\n@*param* `filename` — The filename to save the screenshot to. The encoded image type is determined based on the extension of the filename, and must be one of the ImageFormats.",
                    "finish": [
                        55,
                        54
                    ],
                    "rawdesc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)",
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.captureScreenshot(filename: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    55,
                    40
                ],
                "name": "captureScreenshot",
                "rawdesc": "\nCreates a screenshot once the current frame is done (after love.draw has finished).\n\nSince this function enqueues a screenshot capture rather than executing it immediately, it can be called from an input callback or love.update and it will still capture all of what's drawn to the screen in that frame.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.captureScreenshot)",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.captureScreenshot",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n@*param* `mode` — How to draw the circle.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — The radius of the circle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the circle.",
                            "finish": [
                                68,
                                34
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the circle.",
                            "start": [
                                68,
                                30
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of the center along x-axis.",
                            "finish": [
                                68,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "The position of the center along x-axis.",
                            "start": [
                                68,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the center along y-axis.",
                            "finish": [
                                68,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "The position of the center along y-axis.",
                            "start": [
                                68,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The radius of the circle.",
                            "finish": [
                                68,
                                48
                            ],
                            "name": "radius",
                            "rawdesc": "The radius of the circle.",
                            "start": [
                                68,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n@*param* `mode` — How to draw the circle.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radius` — The radius of the circle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        68,
                        53
                    ],
                    "rawdesc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.circle(mode: \"fill\"|\"line\", x: number, y: number, radius: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    68,
                    29
                ],
                "name": "circle",
                "rawdesc": "\nDraws a circle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.circle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.circle",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                "extends": {
                    "args": [],
                    "desc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                    "finish": [
                        87,
                        34
                    ],
                    "rawdesc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.clear()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    87,
                    28
                ],
                "name": "clear",
                "rawdesc": "\nClears the screen or active Canvas to the specified color.\n\nThis function is called automatically before love.draw in the default love.run function. See the example in love.run for a typical use of this function.\n\nNote that the scissor area bounds the cleared region.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\nIn versions prior to background color instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.clear)",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.clear",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)\n\n\n---\n\n@*param* `discardcolor` — Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)\n\n@*param* `discardstencil` — Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)",
                            "finish": [
                                102,
                                43
                            ],
                            "name": "discardcolor",
                            "rawdesc": "Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)",
                            "start": [
                                102,
                                31
                            ],
                            "type": "local",
                            "view": "boolean?"
                        },
                        {
                            "desc": "Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                            "finish": [
                                102,
                                59
                            ],
                            "name": "discardstencil",
                            "rawdesc": "Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                            "start": [
                                102,
                                45
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)\n\n\n---\n\n@*param* `discardcolor` — Whether to discard the texture(s) of the active Canvas(es) (the contents of the screen if no Canvas is active.)\n\n@*param* `discardstencil` — Whether to discard the contents of the stencil buffer of the screen / active Canvas.",
                    "finish": [
                        102,
                        64
                    ],
                    "rawdesc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)",
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.discard(discardcolor?: boolean, discardstencil?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    102,
                    30
                ],
                "name": "discard",
                "rawdesc": "\nDiscards (trashes) the contents of the screen or active Canvas. This is a performance optimization function with niche use cases.\n\nIf the active Canvas has just been changed and the 'replace' BlendMode is about to be used to draw something which covers the entire screen, calling love.graphics.discard rather than calling love.graphics.clear or doing nothing may improve performance on mobile devices.\n\nOn some desktop systems this function may do nothing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.discard)",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.discard",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)\n\n\n---\n\n@*param* `drawable` — A drawable object.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "A drawable object.",
                            "finish": [
                                135,
                                36
                            ],
                            "name": "drawable",
                            "rawdesc": "A drawable object.",
                            "start": [
                                135,
                                28
                            ],
                            "type": "local",
                            "view": "love.Drawable"
                        },
                        {
                            "desc": "The position to draw the object (x-axis).",
                            "finish": [
                                135,
                                39
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the object (x-axis).",
                            "start": [
                                135,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the object (y-axis).",
                            "finish": [
                                135,
                                42
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the object (y-axis).",
                            "start": [
                                135,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                135,
                                45
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                135,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                135,
                                49
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                135,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                135,
                                53
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                135,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                135,
                                57
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                135,
                                55
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                135,
                                61
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                135,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                135,
                                65
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                135,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                135,
                                69
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                135,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)\n\n\n---\n\n@*param* `drawable` — A drawable object.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        135,
                        74
                    ],
                    "rawdesc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)",
                    "start": [
                        135,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.draw(drawable: love.Drawable, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    135,
                    27
                ],
                "name": "draw",
                "rawdesc": "\nDraws a Drawable object (an Image, Canvas, SpriteBatch, ParticleSystem, Mesh, Text object, or Video) on the screen with optional rotation, scaling and shearing.\n\nObjects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of Image and Canvas. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.\n\nIt's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.\n\nNote that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.\n\nThe right and bottom edges of the object are shifted at an angle defined by the shearing factors.\n\nWhen using the default shader anything drawn with this function will be tinted according to the currently selected color.\n\nSet it to pure white to preserve the object's original colors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.draw)",
                "start": [
                    135,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.draw",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)\n\n\n---\n\n@*param* `mesh` — The mesh to render.\n\n@*param* `instancecount` — The number of instances to render.\n\n@*param* `x` — The position to draw the instances (x-axis).\n\n@*param* `y` — The position to draw the instances (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "The mesh to render.",
                            "finish": [
                                159,
                                41
                            ],
                            "name": "mesh",
                            "rawdesc": "The mesh to render.",
                            "start": [
                                159,
                                37
                            ],
                            "type": "local",
                            "view": "love.Mesh"
                        },
                        {
                            "desc": "The number of instances to render.",
                            "finish": [
                                159,
                                56
                            ],
                            "name": "instancecount",
                            "rawdesc": "The number of instances to render.",
                            "start": [
                                159,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the instances (x-axis).",
                            "finish": [
                                159,
                                59
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the instances (x-axis).",
                            "start": [
                                159,
                                58
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the instances (y-axis).",
                            "finish": [
                                159,
                                62
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the instances (y-axis).",
                            "start": [
                                159,
                                61
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                159,
                                65
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                159,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                159,
                                69
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                159,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                159,
                                73
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                159,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                159,
                                77
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                159,
                                75
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                159,
                                81
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                159,
                                79
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                159,
                                85
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                159,
                                83
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                159,
                                89
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                159,
                                87
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)\n\n\n---\n\n@*param* `mesh` — The mesh to render.\n\n@*param* `instancecount` — The number of instances to render.\n\n@*param* `x` — The position to draw the instances (x-axis).\n\n@*param* `y` — The position to draw the instances (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        159,
                        94
                    ],
                    "rawdesc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)",
                    "start": [
                        159,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.drawInstanced(mesh: love.Mesh, instancecount: number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    159,
                    36
                ],
                "name": "drawInstanced",
                "rawdesc": "\nDraws many instances of a Mesh with a single draw call, using hardware geometry instancing.\n\nEach instance can have unique properties (positions, colors, etc.) but will not by default unless a custom per-instance vertex attributes or the love_InstanceID GLSL 3 vertex shader variable is used, otherwise they will all render at the same position on top of each other.\n\nInstancing is not supported by some older GPUs that are only capable of using OpenGL ES 2 or OpenGL 2. Use love.graphics.getSupported to check.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawInstanced)",
                "start": [
                    159,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.drawInstanced",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)\n\n\n---\n\n@*param* `texture` — The Array Texture to draw.\n\n@*param* `layerindex` — The index of the layer to use when drawing.\n\n@*param* `x` — The position to draw the texture (x-axis).\n\n@*param* `y` — The position to draw the texture (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "The Array Texture to draw.",
                            "finish": [
                                181,
                                40
                            ],
                            "name": "texture",
                            "rawdesc": "The Array Texture to draw.",
                            "start": [
                                181,
                                33
                            ],
                            "type": "local",
                            "view": "love.Texture"
                        },
                        {
                            "desc": "The index of the layer to use when drawing.",
                            "finish": [
                                181,
                                52
                            ],
                            "name": "layerindex",
                            "rawdesc": "The index of the layer to use when drawing.",
                            "start": [
                                181,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position to draw the texture (x-axis).",
                            "finish": [
                                181,
                                55
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the texture (x-axis).",
                            "start": [
                                181,
                                54
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the texture (y-axis).",
                            "finish": [
                                181,
                                58
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the texture (y-axis).",
                            "start": [
                                181,
                                57
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                181,
                                61
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                181,
                                60
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                181,
                                65
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                181,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                181,
                                69
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                181,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                181,
                                73
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                181,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                181,
                                77
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                181,
                                75
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                181,
                                81
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                181,
                                79
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                181,
                                85
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                181,
                                83
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)\n\n\n---\n\n@*param* `texture` — The Array Texture to draw.\n\n@*param* `layerindex` — The index of the layer to use when drawing.\n\n@*param* `x` — The position to draw the texture (x-axis).\n\n@*param* `y` — The position to draw the texture (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        181,
                        90
                    ],
                    "rawdesc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)",
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.drawLayer(texture: love.Texture, layerindex: number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    181,
                    32
                ],
                "name": "drawLayer",
                "rawdesc": "\nDraws a layer of an Array Texture.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.drawLayer)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.drawLayer",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n@*param* `mode` — How to draw the ellipse.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radiusx` — The radius of the ellipse along the x-axis (half the ellipse's width).\n\n@*param* `radiusy` — The radius of the ellipse along the y-axis (half the ellipse's height).\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the ellipse.",
                            "finish": [
                                195,
                                35
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the ellipse.",
                            "start": [
                                195,
                                31
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of the center along x-axis.",
                            "finish": [
                                195,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The position of the center along x-axis.",
                            "start": [
                                195,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the center along y-axis.",
                            "finish": [
                                195,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The position of the center along y-axis.",
                            "start": [
                                195,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The radius of the ellipse along the x-axis (half the ellipse's width).",
                            "finish": [
                                195,
                                50
                            ],
                            "name": "radiusx",
                            "rawdesc": "The radius of the ellipse along the x-axis (half the ellipse's width).",
                            "start": [
                                195,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The radius of the ellipse along the y-axis (half the ellipse's height).",
                            "finish": [
                                195,
                                59
                            ],
                            "name": "radiusy",
                            "rawdesc": "The radius of the ellipse along the y-axis (half the ellipse's height).",
                            "start": [
                                195,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n@*param* `mode` — How to draw the ellipse.\n\n@*param* `x` — The position of the center along x-axis.\n\n@*param* `y` — The position of the center along y-axis.\n\n@*param* `radiusx` — The radius of the ellipse along the x-axis (half the ellipse's width).\n\n@*param* `radiusy` — The radius of the ellipse along the y-axis (half the ellipse's height).\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        195,
                        64
                    ],
                    "rawdesc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        195,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.ellipse(mode: \"fill\"|\"line\", x: number, y: number, radiusx: number, radiusy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    195,
                    30
                ],
                "name": "ellipse",
                "rawdesc": "\nDraws an ellipse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.ellipse)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    195,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.ellipse",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                "extends": {
                    "args": [],
                    "desc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                    "finish": [
                        209,
                        39
                    ],
                    "rawdesc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                    "start": [
                        209,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.flushBatch()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    209,
                    33
                ],
                "name": "flushBatch",
                "rawdesc": "\nImmediately renders any pending automatically batched draws.\n\nLÖVE will call this function internally as needed when most state is changed, so it is not necessary to manually call it.\n\nThe current batch will be automatically flushed by love.graphics state changes (except for the transform stack and the current color), as well as Shader:send and methods on Textures which change their state. Using a different Image in consecutive love.graphics.draw calls will also flush the current batch.\n\nSpriteBatches, ParticleSystems, Meshes, and Text objects do their own batching and do not affect automatic batching of other draws, aside from flushing the current batch when they're drawn.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.flushBatch)",
                "start": [
                    209,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.flushBatch",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                    "finish": [
                        223,
                        47
                    ],
                    "rawdesc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)",
                    "returns": [
                        {
                            "desc": "The red component (0-1).",
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        223,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getBackgroundColor()\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    223,
                    41
                ],
                "name": "getBackgroundColor",
                "rawdesc": "\nGets the current background color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBackgroundColor)",
                "start": [
                    223,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getBackgroundColor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n@*return* `mode` — The current blend mode.\n\n@*return* `alphamode` — The current blend alpha mode – it determines how the alpha of drawn objects affects blending.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n@*return* `mode` — The current blend mode.\n\n@*return* `alphamode` — The current blend alpha mode – it determines how the alpha of drawn objects affects blending.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                    "finish": [
                        233,
                        41
                    ],
                    "rawdesc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                    "returns": [
                        {
                            "desc": "The current blend mode.",
                            "name": "mode",
                            "rawdesc": "The current blend mode.",
                            "type": "function.return",
                            "view": "\"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)"
                        },
                        {
                            "desc": "The current blend alpha mode – it determines how the alpha of drawn objects affects blending.",
                            "name": "alphamode",
                            "rawdesc": "The current blend alpha mode – it determines how the alpha of drawn objects affects blending.",
                            "type": "function.return",
                            "view": "\"alphamultiply\"|\"premultiplied\""
                        }
                    ],
                    "start": [
                        233,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getBlendMode()\n  -> mode: \"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)\n  2. alphamode: \"alphamultiply\"|\"premultiplied\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    233,
                    35
                ],
                "name": "getBlendMode",
                "rawdesc": "\nGets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getBlendMode)\n\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n\n-- \n-- Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendAlphaMode)\n-- \nalphamode:\n    | \"alphamultiply\" -- The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.\n    | \"premultiplied\" -- The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously (\"premultiplied alpha\").\n```",
                "start": [
                    233,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getBlendMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)\n\n@*return* `canvas` — The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)\n\n@*return* `canvas` — The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                    "finish": [
                        242,
                        38
                    ],
                    "rawdesc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)",
                    "returns": [
                        {
                            "desc": "The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                            "name": "canvas",
                            "rawdesc": "The Canvas set by setCanvas. Returns nil if drawing to the real screen.",
                            "type": "function.return",
                            "view": "love.Canvas"
                        }
                    ],
                    "start": [
                        242,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getCanvas()\n  -> canvas: love.Canvas"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    242,
                    32
                ],
                "name": "getCanvas",
                "rawdesc": "\nGets the current target Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvas)",
                "start": [
                    242,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getCanvas",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)\n\n\n---\n\n@*return* `formats` — A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)\n\n\n---\n\n@*return* `formats` — A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                    "finish": [
                        252,
                        45
                    ],
                    "rawdesc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)",
                    "returns": [
                        {
                            "desc": "A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "name": "formats",
                            "rawdesc": "A table containing CanvasFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        252,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getCanvasFormats()\n  -> formats: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    252,
                    39
                ],
                "name": "getCanvasFormats",
                "rawdesc": "\nGets the available Canvas formats, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getCanvasFormats)",
                "start": [
                    252,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getCanvasFormats",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)\n\n@*return* `r` — The red component (0-1).\n\n@*return* `g` — The green component (0-1).\n\n@*return* `b` — The blue component (0-1).\n\n@*return* `a` — The alpha component (0-1).",
                    "finish": [
                        266,
                        37
                    ],
                    "rawdesc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)",
                    "returns": [
                        {
                            "desc": "The red component (0-1).",
                            "name": "r",
                            "rawdesc": "The red component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "name": "g",
                            "rawdesc": "The green component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "name": "b",
                            "rawdesc": "The blue component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "name": "a",
                            "rawdesc": "The alpha component (0-1).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        266,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getColor()\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    266,
                    31
                ],
                "name": "getColor",
                "rawdesc": "\nGets the current color.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColor)",
                "start": [
                    266,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getColor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)\n\n@*return* `r` — Whether the red color component is active when rendering.\n\n@*return* `g` — Whether the green color component is active when rendering.\n\n@*return* `b` — Whether the blue color component is active when rendering.\n\n@*return* `a` — Whether the alpha color component is active when rendering.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)\n\n@*return* `r` — Whether the red color component is active when rendering.\n\n@*return* `g` — Whether the green color component is active when rendering.\n\n@*return* `b` — Whether the blue color component is active when rendering.\n\n@*return* `a` — Whether the alpha color component is active when rendering.",
                    "finish": [
                        280,
                        41
                    ],
                    "rawdesc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)",
                    "returns": [
                        {
                            "desc": "Whether the red color component is active when rendering.",
                            "name": "r",
                            "rawdesc": "Whether the red color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether the green color component is active when rendering.",
                            "name": "g",
                            "rawdesc": "Whether the green color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether the blue color component is active when rendering.",
                            "name": "b",
                            "rawdesc": "Whether the blue color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Whether the alpha color component is active when rendering.",
                            "name": "a",
                            "rawdesc": "Whether the alpha color component is active when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        280,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getColorMask()\n  -> r: boolean\n  2. g: boolean\n  3. b: boolean\n  4. a: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    280,
                    35
                ],
                "name": "getColorMask",
                "rawdesc": "\nGets the active color components used when drawing. Normally all 4 components are active unless love.graphics.setColorMask has been used.\n\nThe color mask determines whether individual components of the colors of drawn objects will affect the color of the screen. They affect love.graphics.clear and Canvas:clear as well.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getColorMask)",
                "start": [
                    280,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getColorMask",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                    "finish": [
                        295,
                        40
                    ],
                    "rawdesc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)",
                    "returns": [
                        {
                            "desc": "The pixel scale factor associated with the window.",
                            "name": "scale",
                            "rawdesc": "The pixel scale factor associated with the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        295,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDPIScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    295,
                    34
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor of the window.\n\nThe DPI scale factor represents relative pixel density. The pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.graphics.getDPIScale() would return 2 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDPIScale)",
                "start": [
                    295,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getDPIScale",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n@*return* `min` — Filter mode used when scaling the image down.\n\n@*return* `mag` — Filter mode used when scaling the image up.\n\n@*return* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n@*return* `min` — Filter mode used when scaling the image down.\n\n@*return* `mag` — Filter mode used when scaling the image up.\n\n@*return* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        306,
                        45
                    ],
                    "rawdesc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "returns": [
                        {
                            "desc": "Filter mode used when scaling the image down.",
                            "name": "min",
                            "rawdesc": "Filter mode used when scaling the image down.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode used when scaling the image up.",
                            "name": "mag",
                            "rawdesc": "Filter mode used when scaling the image up.",
                            "type": "function.return",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Maximum amount of Anisotropic Filtering used.",
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of Anisotropic Filtering used.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        306,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDefaultFilter()\n  -> min: \"linear\"|\"nearest\"\n  2. mag: \"linear\"|\"nearest\"\n  3. anisotropy: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    306,
                    39
                ],
                "name": "getDefaultFilter",
                "rawdesc": "\nReturns the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    306,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getDefaultFilter",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n@*return* `comparemode` — Depth comparison mode used for depth testing.\n\n@*return* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n@*return* `comparemode` — Depth comparison mode used for depth testing.\n\n@*return* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        318,
                        41
                    ],
                    "rawdesc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "Depth comparison mode used for depth testing.",
                            "name": "comparemode",
                            "rawdesc": "Depth comparison mode used for depth testing.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "Whether to write update / write values to the depth buffer when rendering.",
                            "name": "write",
                            "rawdesc": "Whether to write update / write values to the depth buffer when rendering.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        318,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDepthMode()\n  -> comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)\n  2. write: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    318,
                    35
                ],
                "name": "getDepthMode",
                "rawdesc": "\nGets the current depth test mode and whether writing to the depth buffer is enabled.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDepthMode)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    318,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getDepthMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)\n\n@*return* `width` — The width of the window.\n\n@*return* `height` — The height of the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)\n\n@*return* `width` — The width of the window.\n\n@*return* `height` — The height of the window.",
                    "finish": [
                        328,
                        42
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the window.",
                            "name": "width",
                            "rawdesc": "The width of the window.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the window.",
                            "name": "height",
                            "rawdesc": "The height of the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        328,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getDimensions()\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    328,
                    36
                ],
                "name": "getDimensions",
                "rawdesc": "\nGets the width and height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getDimensions)",
                "start": [
                    328,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getDimensions",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)\n\n@*return* `font` — The current Font. Automatically creates and sets the default font, if none is set yet.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)\n\n@*return* `font` — The current Font. Automatically creates and sets the default font, if none is set yet.",
                    "finish": [
                        337,
                        36
                    ],
                    "rawdesc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)",
                    "returns": [
                        {
                            "desc": "The current Font. Automatically creates and sets the default font, if none is set yet.",
                            "name": "font",
                            "rawdesc": "The current Font. Automatically creates and sets the default font, if none is set yet.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        337,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getFont()\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    337,
                    30
                ],
                "name": "getFont",
                "rawdesc": "\nGets the current Font object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFont)",
                "start": [
                    337,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getFont",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n@*return* `winding` — The winding mode being used. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n@*return* `winding` — The winding mode being used. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "finish": [
                        348,
                        48
                    ],
                    "rawdesc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "returns": [
                        {
                            "desc": "The winding mode being used. The default winding is counterclockwise ('ccw').",
                            "name": "winding",
                            "rawdesc": "The winding mode being used. The default winding is counterclockwise ('ccw').",
                            "type": "function.return",
                            "view": "\"ccw\"|\"cw\""
                        }
                    ],
                    "start": [
                        348,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getFrontFaceWinding()\n  -> winding: \"ccw\"|\"cw\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    348,
                    42
                ],
                "name": "getFrontFaceWinding",
                "rawdesc": "\nGets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "start": [
                    348,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getFrontFaceWinding",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)\n\n@*return* `height` — The height of the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)\n\n@*return* `height` — The height of the window.",
                    "finish": [
                        357,
                        38
                    ],
                    "rawdesc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)",
                    "returns": [
                        {
                            "desc": "The height of the window.",
                            "name": "height",
                            "rawdesc": "The height of the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        357,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getHeight()\n  -> height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    357,
                    32
                ],
                "name": "getHeight",
                "rawdesc": "\nGets the height in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getHeight)",
                "start": [
                    357,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getHeight",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)\n\n@*return* `formats` — A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)\n\n@*return* `formats` — A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                    "finish": [
                        366,
                        44
                    ],
                    "rawdesc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)",
                    "returns": [
                        {
                            "desc": "A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "name": "formats",
                            "rawdesc": "A table containing PixelFormats as keys, and a boolean indicating whether the format is supported as values. Not all systems support all formats.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        366,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getImageFormats()\n  -> formats: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    366,
                    38
                ],
                "name": "getImageFormats",
                "rawdesc": "\nGets the raw and compressed pixel formats usable for Images, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getImageFormats)",
                "start": [
                    366,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getImageFormats",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n@*return* `join` — The LineJoin style.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n@*return* `join` — The LineJoin style.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "finish": [
                        375,
                        40
                    ],
                    "rawdesc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "returns": [
                        {
                            "desc": "The LineJoin style.",
                            "name": "join",
                            "rawdesc": "The LineJoin style.",
                            "type": "function.return",
                            "view": "\"bevel\"|\"miter\"|\"none\""
                        }
                    ],
                    "start": [
                        375,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getLineJoin()\n  -> join: \"bevel\"|\"miter\"|\"none\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    375,
                    34
                ],
                "name": "getLineJoin",
                "rawdesc": "\nGets the line join style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "start": [
                    375,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getLineJoin",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n@*return* `style` — The current line style.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n@*return* `style` — The current line style.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "finish": [
                        384,
                        41
                    ],
                    "rawdesc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "returns": [
                        {
                            "desc": "The current line style.",
                            "name": "style",
                            "rawdesc": "The current line style.",
                            "type": "function.return",
                            "view": "\"rough\"|\"smooth\""
                        }
                    ],
                    "start": [
                        384,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getLineStyle()\n  -> style: \"rough\"|\"smooth\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    384,
                    35
                ],
                "name": "getLineStyle",
                "rawdesc": "\nGets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "start": [
                    384,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getLineStyle",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)\n\n@*return* `width` — The current line width.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)\n\n@*return* `width` — The current line width.",
                    "finish": [
                        393,
                        41
                    ],
                    "rawdesc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)",
                    "returns": [
                        {
                            "desc": "The current line width.",
                            "name": "width",
                            "rawdesc": "The current line width.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        393,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getLineWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    393,
                    35
                ],
                "name": "getLineWidth",
                "rawdesc": "\nGets the current line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getLineWidth)",
                "start": [
                    393,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getLineWidth",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n@*return* `mode` — The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n@*return* `mode` — The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "finish": [
                        404,
                        44
                    ],
                    "rawdesc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "returns": [
                        {
                            "desc": "The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "name": "mode",
                            "rawdesc": "The Mesh face culling mode in use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "type": "function.return",
                            "view": "\"back\"|\"front\"|\"none\""
                        }
                    ],
                    "start": [
                        404,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getMeshCullMode()\n  -> mode: \"back\"|\"front\"|\"none\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    404,
                    38
                ],
                "name": "getMeshCullMode",
                "rawdesc": "\nGets whether back-facing triangles in a Mesh are culled.\n\nMesh face culling is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "start": [
                    404,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getMeshCullMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the window in pixels.\n\n@*return* `pixelheight` — The height of the window in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)\n\n@*return* `pixelwidth` — The width of the window in pixels.\n\n@*return* `pixelheight` — The height of the window in pixels.",
                    "finish": [
                        416,
                        47
                    ],
                    "rawdesc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the window in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the window in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        416,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPixelDimensions()\n  -> pixelwidth: number\n  2. pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    416,
                    41
                ],
                "name": "getPixelDimensions",
                "rawdesc": "\nGets the width and height in pixels of the window.\n\nlove.graphics.getDimensions gets the dimensions of the window in units scaled by the screen's DPI scale factor, rather than pixels. Use getDimensions for calculations related to drawing to the screen and using the graphics coordinate system (calculating the center of the screen, for example), and getPixelDimensions only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelDimensions)",
                "start": [
                    416,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getPixelDimensions",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)\n\n@*return* `pixelheight` — The height of the window in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)\n\n@*return* `pixelheight` — The height of the window in pixels.",
                    "finish": [
                        427,
                        43
                    ],
                    "rawdesc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)",
                    "returns": [
                        {
                            "desc": "The height of the window in pixels.",
                            "name": "pixelheight",
                            "rawdesc": "The height of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        427,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPixelHeight()\n  -> pixelheight: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    427,
                    37
                ],
                "name": "getPixelHeight",
                "rawdesc": "\nGets the height in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getHeight for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelHeight only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelHeight)",
                "start": [
                    427,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getPixelHeight",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)\n\n@*return* `pixelwidth` — The width of the window in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)\n\n@*return* `pixelwidth` — The width of the window in pixels.",
                    "finish": [
                        438,
                        42
                    ],
                    "rawdesc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)",
                    "returns": [
                        {
                            "desc": "The width of the window in pixels.",
                            "name": "pixelwidth",
                            "rawdesc": "The width of the window in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        438,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPixelWidth()\n  -> pixelwidth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    438,
                    36
                ],
                "name": "getPixelWidth",
                "rawdesc": "\nGets the width in pixels of the window.\n\nThe graphics coordinate system and DPI scale factor, rather than raw pixels. Use getWidth for calculations related to drawing to the screen and using the coordinate system (calculating the center of the screen, for example), and getPixelWidth only when dealing specifically with underlying pixels (pixel-related calculations in a pixel Shader, for example).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPixelWidth)",
                "start": [
                    438,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getPixelWidth",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)\n\n@*return* `size` — The current point size.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)\n\n@*return* `size` — The current point size.",
                    "finish": [
                        447,
                        41
                    ],
                    "rawdesc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)",
                    "returns": [
                        {
                            "desc": "The current point size.",
                            "name": "size",
                            "rawdesc": "The current point size.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        447,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getPointSize()\n  -> size: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    447,
                    35
                ],
                "name": "getPointSize",
                "rawdesc": "\nGets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getPointSize)",
                "start": [
                    447,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getPointSize",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)\n\n@*return* `name` — The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.\n\n@*return* `version` — The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.\n\n@*return* `vendor` — The name of the graphics card vendor, e.g. 'Intel Inc'.\n\n@*return* `device` — The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                "extends": {
                    "args": [],
                    "desc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)\n\n@*return* `name` — The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.\n\n@*return* `version` — The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.\n\n@*return* `vendor` — The name of the graphics card vendor, e.g. 'Intel Inc'.\n\n@*return* `device` — The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                    "finish": [
                        459,
                        44
                    ],
                    "rawdesc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)",
                    "returns": [
                        {
                            "desc": "The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.",
                            "name": "name",
                            "rawdesc": "The name of the renderer, e.g. 'OpenGL' or 'OpenGL ES'.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.",
                            "name": "version",
                            "rawdesc": "The version of the renderer with some extra driver-dependent version info, e.g. '2.1 INTEL-8.10.44'.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "The name of the graphics card vendor, e.g. 'Intel Inc'.",
                            "name": "vendor",
                            "rawdesc": "The name of the graphics card vendor, e.g. 'Intel Inc'.",
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "desc": "The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                            "name": "device",
                            "rawdesc": "The name of the graphics card, e.g. 'Intel HD Graphics 3000 OpenGL Engine'.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        459,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getRendererInfo()\n  -> name: string\n  2. version: string\n  3. vendor: string\n  4. device: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    459,
                    38
                ],
                "name": "getRendererInfo",
                "rawdesc": "\nGets information about the system's video card and drivers.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getRendererInfo)",
                "start": [
                    459,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getRendererInfo",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)\n\n@*return* `x` — The x-component of the top-left point of the box.\n\n@*return* `y` — The y-component of the top-left point of the box.\n\n@*return* `width` — The width of the box.\n\n@*return* `height` — The height of the box.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)\n\n@*return* `x` — The x-component of the top-left point of the box.\n\n@*return* `y` — The y-component of the top-left point of the box.\n\n@*return* `width` — The width of the box.\n\n@*return* `height` — The height of the box.",
                    "finish": [
                        471,
                        39
                    ],
                    "rawdesc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)",
                    "returns": [
                        {
                            "desc": "The x-component of the top-left point of the box.",
                            "name": "x",
                            "rawdesc": "The x-component of the top-left point of the box.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-component of the top-left point of the box.",
                            "name": "y",
                            "rawdesc": "The y-component of the top-left point of the box.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the box.",
                            "name": "width",
                            "rawdesc": "The width of the box.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the box.",
                            "name": "height",
                            "rawdesc": "The height of the box.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        471,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getScissor()\n  -> x: number\n  2. y: number\n  3. width: number\n  4. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    471,
                    33
                ],
                "name": "getScissor",
                "rawdesc": "\nGets the current scissor box.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getScissor)",
                "start": [
                    471,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getScissor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)\n\n@*return* `shader` — The currently active Shader, or nil if none is set.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)\n\n@*return* `shader` — The currently active Shader, or nil if none is set.",
                    "finish": [
                        480,
                        38
                    ],
                    "rawdesc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)",
                    "returns": [
                        {
                            "desc": "The currently active Shader, or nil if none is set.",
                            "name": "shader",
                            "rawdesc": "The currently active Shader, or nil if none is set.",
                            "type": "function.return",
                            "view": "love.Shader"
                        }
                    ],
                    "start": [
                        480,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getShader()\n  -> shader: love.Shader"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    480,
                    32
                ],
                "name": "getShader",
                "rawdesc": "\nGets the current Shader. Returns nil if none is set.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getShader)",
                "start": [
                    480,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getShader",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)\n\n@*return* `depth` — The current depth of the transform and state love.graphics stack.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)\n\n@*return* `depth` — The current depth of the transform and state love.graphics stack.",
                    "finish": [
                        489,
                        42
                    ],
                    "rawdesc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)",
                    "returns": [
                        {
                            "desc": "The current depth of the transform and state love.graphics stack.",
                            "name": "depth",
                            "rawdesc": "The current depth of the transform and state love.graphics stack.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        489,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getStackDepth()\n  -> depth: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    489,
                    36
                ],
                "name": "getStackDepth",
                "rawdesc": "\nGets the current depth of the transform / state stack (the number of pushes without corresponding pops).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStackDepth)",
                "start": [
                    489,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getStackDepth",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)\n\n\n---\n\n@*return* `stats` — A table with the following fields:",
                "extends": {
                    "args": [],
                    "desc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)\n\n\n---\n\n@*return* `stats` — A table with the following fields:",
                    "finish": [
                        499,
                        37
                    ],
                    "rawdesc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)",
                    "returns": [
                        {
                            "desc": "A table with the following fields:",
                            "name": "stats",
                            "rawdesc": "A table with the following fields:",
                            "type": "function.return",
                            "view": "{ drawcalls: number, canvasswitches: number, texturememory: number, images: number, canvases: number, fonts: number, shaderswitches: number, drawcallsbatched: number }"
                        }
                    ],
                    "start": [
                        499,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getStats()\n  -> stats: { drawcalls: number, canvasswitches: number, texturememory: number, images: number, canvases: number, fonts: number, shaderswitches: number, drawcallsbatched: number }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    499,
                    31
                ],
                "name": "getStats",
                "rawdesc": "\nGets performance-related rendering statistics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStats)",
                "start": [
                    499,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getStats",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n@*return* `comparemode` — The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.\n\n@*return* `comparevalue` — The value used when comparing with the stencil value of each pixel.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n@*return* `comparemode` — The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.\n\n@*return* `comparevalue` — The value used when comparing with the stencil value of each pixel.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        513,
                        43
                    ],
                    "rawdesc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "returns": [
                        {
                            "desc": "The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.",
                            "name": "comparemode",
                            "rawdesc": "The type of comparison that is made for each pixel. Will be 'always' if stencil testing is disabled.",
                            "type": "function.return",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "The value used when comparing with the stencil value of each pixel.",
                            "name": "comparevalue",
                            "rawdesc": "The value used when comparing with the stencil value of each pixel.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        513,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getStencilTest()\n  -> comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)\n  2. comparevalue: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    513,
                    37
                ],
                "name": "getStencilTest",
                "rawdesc": "\nGets the current stencil test configuration.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\nEach Canvas has its own per-pixel stencil values.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getStencilTest)\n\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    513,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getStencilTest",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)\n\n@*return* `features` — A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)\n\n@*return* `features` — A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                    "finish": [
                        524,
                        41
                    ],
                    "rawdesc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)",
                    "returns": [
                        {
                            "desc": "A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                            "name": "features",
                            "rawdesc": "A table containing GraphicsFeature keys, and boolean values indicating whether each feature is supported.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        524,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getSupported()\n  -> features: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    524,
                    35
                ],
                "name": "getSupported",
                "rawdesc": "\nGets the optional graphics features and whether they're supported on the system.\n\nSome older or low-end systems don't always support all graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSupported)",
                "start": [
                    524,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getSupported",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)\n\n@*return* `limits` — A table containing GraphicsLimit keys, and number values.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)\n\n@*return* `limits` — A table containing GraphicsLimit keys, and number values.",
                    "finish": [
                        533,
                        44
                    ],
                    "rawdesc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)",
                    "returns": [
                        {
                            "desc": "A table containing GraphicsLimit keys, and number values.",
                            "name": "limits",
                            "rawdesc": "A table containing GraphicsLimit keys, and number values.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        533,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getSystemLimits()\n  -> limits: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    533,
                    38
                ],
                "name": "getSystemLimits",
                "rawdesc": "\nGets the system-dependent maximum values for love.graphics features.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getSystemLimits)",
                "start": [
                    533,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getSystemLimits",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)\n\n@*return* `texturetypes` — A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)\n\n@*return* `texturetypes` — A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                    "finish": [
                        542,
                        44
                    ],
                    "rawdesc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)",
                    "returns": [
                        {
                            "desc": "A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                            "name": "texturetypes",
                            "rawdesc": "A table containing TextureTypes as keys, and a boolean indicating whether the type is supported as values. Not all systems support all types.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        542,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getTextureTypes()\n  -> texturetypes: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    542,
                    38
                ],
                "name": "getTextureTypes",
                "rawdesc": "\nGets the available texture types, and whether each is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getTextureTypes)",
                "start": [
                    542,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getTextureTypes",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)\n\n@*return* `width` — The width of the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)\n\n@*return* `width` — The width of the window.",
                    "finish": [
                        551,
                        37
                    ],
                    "rawdesc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)",
                    "returns": [
                        {
                            "desc": "The width of the window.",
                            "name": "width",
                            "rawdesc": "The width of the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        551,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.getWidth()\n  -> width: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    551,
                    31
                ],
                "name": "getWidth",
                "rawdesc": "\nGets the width in pixels of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.getWidth)",
                "start": [
                    551,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.getWidth",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)\n\n@*param* `x` — The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `y` — The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `width` — The width of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `height` — The height of the rectangle to intersect with the existing scissor rectangle.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                41
                            ],
                            "name": "x",
                            "rawdesc": "The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                44
                            ],
                            "name": "y",
                            "rawdesc": "The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                51
                            ],
                            "name": "width",
                            "rawdesc": "The width of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the rectangle to intersect with the existing scissor rectangle.",
                            "finish": [
                                569,
                                59
                            ],
                            "name": "height",
                            "rawdesc": "The height of the rectangle to intersect with the existing scissor rectangle.",
                            "start": [
                                569,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)\n\n@*param* `x` — The x-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `y` — The y-coordinate of the upper left corner of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `width` — The width of the rectangle to intersect with the existing scissor rectangle.\n\n@*param* `height` — The height of the rectangle to intersect with the existing scissor rectangle.",
                    "finish": [
                        569,
                        64
                    ],
                    "rawdesc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)",
                    "start": [
                        569,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.intersectScissor(x: number, y: number, width: number, height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    569,
                    39
                ],
                "name": "intersectScissor",
                "rawdesc": "\nSets the scissor to the rectangle created by the intersection of the specified rectangle with the existing scissor.\n\nIf no scissor is active yet, it behaves like love.graphics.setScissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.intersectScissor)",
                "start": [
                    569,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.intersectScissor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)\n\n@*param* `screenX` — The x component of the screen-space position.\n\n@*param* `screenY` — The y component of the screen-space position.\n\n@*return* `globalX` — The x component of the position in global coordinates.\n\n@*return* `globalY` — The y component of the position in global coordinates.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x component of the screen-space position.",
                            "finish": [
                                583,
                                52
                            ],
                            "name": "screenX",
                            "rawdesc": "The x component of the screen-space position.",
                            "start": [
                                583,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the screen-space position.",
                            "finish": [
                                583,
                                61
                            ],
                            "name": "screenY",
                            "rawdesc": "The y component of the screen-space position.",
                            "start": [
                                583,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)\n\n@*param* `screenX` — The x component of the screen-space position.\n\n@*param* `screenY` — The y component of the screen-space position.\n\n@*return* `globalX` — The x component of the position in global coordinates.\n\n@*return* `globalY` — The y component of the position in global coordinates.",
                    "finish": [
                        583,
                        66
                    ],
                    "rawdesc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)",
                    "returns": [
                        {
                            "desc": "The x component of the position in global coordinates.",
                            "name": "globalX",
                            "rawdesc": "The x component of the position in global coordinates.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position in global coordinates.",
                            "name": "globalY",
                            "rawdesc": "The y component of the position in global coordinates.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        583,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.inverseTransformPoint(screenX: number, screenY: number)\n  -> globalX: number\n  2. globalY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    583,
                    44
                ],
                "name": "inverseTransformPoint",
                "rawdesc": "\nConverts the given 2D position from screen-space into global coordinates.\n\nThis effectively applies the reverse of the current graphics transformations to the given position. A similar Transform:inverseTransformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.inverseTransformPoint)",
                "start": [
                    583,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.inverseTransformPoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)\n\n@*return* `active` — Whether the graphics module is active and able to be used.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)\n\n@*return* `active` — Whether the graphics module is active and able to be used.",
                    "finish": [
                        593,
                        37
                    ],
                    "rawdesc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)",
                    "returns": [
                        {
                            "desc": "Whether the graphics module is active and able to be used.",
                            "name": "active",
                            "rawdesc": "Whether the graphics module is active and able to be used.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        593,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.isActive()\n  -> active: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    593,
                    31
                ],
                "name": "isActive",
                "rawdesc": "\nGets whether the graphics module is able to be used. If it is not active, love.graphics function and method calls will not work correctly and may cause the program to crash.\nThe graphics module is inactive if a window is not open, or if the app is in the background on iOS. Typically the app's execution will be automatically paused by the system, in the latter case.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isActive)",
                "start": [
                    593,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.isActive",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)\n\n@*return* `gammacorrect` — True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)\n\n@*return* `gammacorrect` — True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                    "finish": [
                        604,
                        43
                    ],
                    "rawdesc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)",
                    "returns": [
                        {
                            "desc": "True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                            "name": "gammacorrect",
                            "rawdesc": "True if gamma-correct rendering is supported and was enabled in love.conf, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        604,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.isGammaCorrect()\n  -> gammacorrect: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    604,
                    37
                ],
                "name": "isGammaCorrect",
                "rawdesc": "\nGets whether gamma-correct rendering is supported and enabled. It can be enabled by setting t.gammacorrect = true in love.conf.\n\nNot all devices support gamma-correct rendering, in which case it will be automatically disabled and this function will return false. It is supported on desktop systems which have graphics cards that are capable of using OpenGL 3 / DirectX 10, and iOS devices that can use OpenGL ES 3.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isGammaCorrect)",
                "start": [
                    604,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.isGammaCorrect",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)\n\n@*return* `wireframe` — True if wireframe lines are used when drawing, false if it's not.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)\n\n@*return* `wireframe` — True if wireframe lines are used when drawing, false if it's not.",
                    "finish": [
                        613,
                        40
                    ],
                    "rawdesc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)",
                    "returns": [
                        {
                            "desc": "True if wireframe lines are used when drawing, false if it's not.",
                            "name": "wireframe",
                            "rawdesc": "True if wireframe lines are used when drawing, false if it's not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        613,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.isWireframe()\n  -> wireframe: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    613,
                    34
                ],
                "name": "isWireframe",
                "rawdesc": "\nGets whether wireframe mode is used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.isWireframe)",
                "start": [
                    613,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.isWireframe",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)\n\n\n---\n\n@*param* `x1` — The position of first point on the x-axis.\n\n@*param* `y1` — The position of first point on the y-axis.\n\n@*param* `x2` — The position of second point on the x-axis.\n\n@*param* `y2` — The position of second point on the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The position of first point on the x-axis.",
                            "finish": [
                                627,
                                30
                            ],
                            "name": "x1",
                            "rawdesc": "The position of first point on the x-axis.",
                            "start": [
                                627,
                                28
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of first point on the y-axis.",
                            "finish": [
                                627,
                                34
                            ],
                            "name": "y1",
                            "rawdesc": "The position of first point on the y-axis.",
                            "start": [
                                627,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of second point on the x-axis.",
                            "finish": [
                                627,
                                38
                            ],
                            "name": "x2",
                            "rawdesc": "The position of second point on the x-axis.",
                            "start": [
                                627,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of second point on the y-axis.",
                            "finish": [
                                627,
                                42
                            ],
                            "name": "y2",
                            "rawdesc": "The position of second point on the y-axis.",
                            "start": [
                                627,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                627,
                                47
                            ],
                            "start": [
                                627,
                                44
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)\n\n\n---\n\n@*param* `x1` — The position of first point on the x-axis.\n\n@*param* `y1` — The position of first point on the y-axis.\n\n@*param* `x2` — The position of second point on the x-axis.\n\n@*param* `y2` — The position of second point on the y-axis.",
                    "finish": [
                        627,
                        52
                    ],
                    "rawdesc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)",
                    "start": [
                        627,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.line(x1: number, y1: number, x2: number, y2: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    627,
                    27
                ],
                "name": "line",
                "rawdesc": "\nDraws lines between points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.line)",
                "start": [
                    627,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.line",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)\n\n@*param* `slices` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.\n\n@*param* `settings` — Optional table of settings to configure the array image, containing the following fields:\n\n@*return* `image` — An Array Image object.",
                "extends": {
                    "args": [
                        {
                            "desc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.",
                            "finish": [
                                644,
                                43
                            ],
                            "name": "slices",
                            "rawdesc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.",
                            "start": [
                                644,
                                37
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Optional table of settings to configure the array image, containing the following fields:",
                            "finish": [
                                644,
                                53
                            ],
                            "name": "settings",
                            "rawdesc": "Optional table of settings to configure the array image, containing the following fields:",
                            "start": [
                                644,
                                45
                            ],
                            "type": "local",
                            "view": "{ mipmaps: boolean, linear: boolean, dpiscale: number }?"
                        }
                    ],
                    "desc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)\n\n@*param* `slices` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. Each sub-image must have the same dimensions. A table of tables can also be given, where each sub-table contains all mipmap levels for the slice index of that sub-table.\n\n@*param* `settings` — Optional table of settings to configure the array image, containing the following fields:\n\n@*return* `image` — An Array Image object.",
                    "finish": [
                        644,
                        58
                    ],
                    "rawdesc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)",
                    "returns": [
                        {
                            "desc": "An Array Image object.",
                            "name": "image",
                            "rawdesc": "An Array Image object.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        644,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newArrayImage(slices: table, settings?: { mipmaps: boolean, linear: boolean, dpiscale: number })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    644,
                    36
                ],
                "name": "newArrayImage",
                "rawdesc": "\nCreates a new array Image.\n\nAn array image / array texture is a single object which contains multiple 'layers' or 'slices' of 2D sub-images. It can be thought of similarly to a texture atlas or sprite sheet, but it doesn't suffer from the same tile / quad bleeding artifacts that texture atlases do – although every sub-image must have the same dimensions.\n\nA specific layer of an array image can be drawn with love.graphics.drawLayer / SpriteBatch:addLayer, or with the Quad variant of love.graphics.draw and Quad:setLayer, or via a custom Shader.\n\nTo use an array image in a Shader, it must be declared as a ArrayImage or sampler2DArray type (instead of Image or sampler2D). The Texel(ArrayImage image, vec3 texturecoord) shader function must be used to get pixel colors from a slice of the array image. The vec3 argument contains the texture coordinate in the first two components, and the 0-based slice index in the third component.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newArrayImage)",
                "start": [
                    644,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newArrayImage",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)\n\n\n---\n\n@*return* `canvas` — A new Canvas with dimensions equal to the window's size in pixels.",
                "extends": {
                    "args": [],
                    "desc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)\n\n\n---\n\n@*return* `canvas` — A new Canvas with dimensions equal to the window's size in pixels.",
                    "finish": [
                        656,
                        38
                    ],
                    "rawdesc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)",
                    "returns": [
                        {
                            "desc": "A new Canvas with dimensions equal to the window's size in pixels.",
                            "name": "canvas",
                            "rawdesc": "A new Canvas with dimensions equal to the window's size in pixels.",
                            "type": "function.return",
                            "view": "love.Canvas"
                        }
                    ],
                    "start": [
                        656,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newCanvas()\n  -> canvas: love.Canvas"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    656,
                    32
                ],
                "name": "newCanvas",
                "rawdesc": "\nCreates a new Canvas object for offscreen rendering.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCanvas)",
                "start": [
                    656,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newCanvas",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)\n\n\n---\n\n@*param* `filename` — The filepath to a cubemap image file (or a File, FileData, or ImageData).\n\n@*param* `settings` — Optional table of settings to configure the cubemap image, containing the following fields:\n\n@*return* `image` — An cubemap Image object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to a cubemap image file (or a File, FileData, or ImageData).",
                            "finish": [
                                710,
                                44
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to a cubemap image file (or a File, FileData, or ImageData).",
                            "start": [
                                710,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "Optional table of settings to configure the cubemap image, containing the following fields:",
                            "finish": [
                                710,
                                54
                            ],
                            "name": "settings",
                            "rawdesc": "Optional table of settings to configure the cubemap image, containing the following fields:",
                            "start": [
                                710,
                                46
                            ],
                            "type": "local",
                            "view": "{ mipmaps: boolean, linear: boolean }?"
                        }
                    ],
                    "desc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)\n\n\n---\n\n@*param* `filename` — The filepath to a cubemap image file (or a File, FileData, or ImageData).\n\n@*param* `settings` — Optional table of settings to configure the cubemap image, containing the following fields:\n\n@*return* `image` — An cubemap Image object.",
                    "finish": [
                        710,
                        59
                    ],
                    "rawdesc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)",
                    "returns": [
                        {
                            "desc": "An cubemap Image object.",
                            "name": "image",
                            "rawdesc": "An cubemap Image object.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        710,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newCubeImage(filename: string, settings?: { mipmaps: boolean, linear: boolean })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    710,
                    35
                ],
                "name": "newCubeImage",
                "rawdesc": "\nCreates a new cubemap Image.\n\nCubemap images have 6 faces (sides) which represent a cube. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a cubemap image in a Shader, it must be declared as a CubeImage or samplerCube type (instead of Image or sampler2D). The Texel(CubeImage image, vec3 direction) shader function must be used to get pixel colors from the cubemap. The vec3 argument is a normalized direction from the center of the cube, rather than explicit texture coordinates.\n\nEach face in a cubemap image must have square dimensions.\n\nFor variants of this function which accept a single image containing multiple cubemap faces, they must be laid out in one of the following forms in the image:\n\n   +y\n\n+z +x -z\n\n   -y\n\n   -x\n\nor:\n\n   +y\n\n-x +z +x -z\n\n   -y\n\nor:\n\n+x\n\n-x\n\n+y\n\n-y\n\n+z\n\n-z\n\nor:\n\n+x -x +y -y +z -z\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newCubeImage)",
                "start": [
                    710,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newCubeImage",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)\n\n\n---\n\n@*param* `filename` — The filepath to the BMFont or TrueType font file.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the BMFont or TrueType font file.",
                            "finish": [
                                725,
                                39
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the BMFont or TrueType font file.",
                            "start": [
                                725,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)\n\n\n---\n\n@*param* `filename` — The filepath to the BMFont or TrueType font file.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                    "finish": [
                        725,
                        44
                    ],
                    "rawdesc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)",
                    "returns": [
                        {
                            "desc": "A Font object which can be used to draw text on screen.",
                            "name": "font",
                            "rawdesc": "A Font object which can be used to draw text on screen.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        725,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newFont(filename: string)\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    725,
                    30
                ],
                "name": "newFont",
                "rawdesc": "\nCreates a new Font from a TrueType Font or BMFont file. Created fonts are not cached, in that calling this function with the same arguments will always create a new Font object.\n\nAll variants which accept a filename can also accept a Data object instead.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newFont)",
                "start": [
                    725,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newFont",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `settings` — A table containing the following fields:\n\n@*return* `image` — A new Image object which can be drawn on screen.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the image file.",
                            "finish": [
                                739,
                                40
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the image file.",
                            "start": [
                                739,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A table containing the following fields:",
                            "finish": [
                                739,
                                50
                            ],
                            "name": "settings",
                            "rawdesc": "A table containing the following fields:",
                            "start": [
                                739,
                                42
                            ],
                            "type": "local",
                            "view": "{ dpiscale: number, linear: boolean, mipmaps: boolean }?"
                        }
                    ],
                    "desc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `settings` — A table containing the following fields:\n\n@*return* `image` — A new Image object which can be drawn on screen.",
                    "finish": [
                        739,
                        55
                    ],
                    "rawdesc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)",
                    "returns": [
                        {
                            "desc": "A new Image object which can be drawn on screen.",
                            "name": "image",
                            "rawdesc": "A new Image object which can be drawn on screen.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        739,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newImage(filename: string, settings?: { dpiscale: number, linear: boolean, mipmaps: boolean })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    739,
                    31
                ],
                "name": "newImage",
                "rawdesc": "\nCreates a new Image from a filepath, FileData, an ImageData, or a CompressedImageData, and optionally generates or specifies mipmaps for the image.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImage)",
                "start": [
                    739,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newImage",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `glyphs` — A string of the characters in the image in order from left to right.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filepath to the image file.",
                            "finish": [
                                754,
                                44
                            ],
                            "name": "filename",
                            "rawdesc": "The filepath to the image file.",
                            "start": [
                                754,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "A string of the characters in the image in order from left to right.",
                            "finish": [
                                754,
                                52
                            ],
                            "name": "glyphs",
                            "rawdesc": "A string of the characters in the image in order from left to right.",
                            "start": [
                                754,
                                46
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)\n\n\n---\n\n@*param* `filename` — The filepath to the image file.\n\n@*param* `glyphs` — A string of the characters in the image in order from left to right.\n\n@*return* `font` — A Font object which can be used to draw text on screen.",
                    "finish": [
                        754,
                        57
                    ],
                    "rawdesc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)",
                    "returns": [
                        {
                            "desc": "A Font object which can be used to draw text on screen.",
                            "name": "font",
                            "rawdesc": "A Font object which can be used to draw text on screen.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        754,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newImageFont(filename: string, glyphs: string)\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    754,
                    35
                ],
                "name": "newImageFont",
                "rawdesc": "\nCreates a new specifically formatted image.\n\nIn versions prior to 0.9.0, LÖVE expects ISO 8859-1 encoding for the glyphs string.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newImageFont)",
                "start": [
                    754,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newImageFont",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n@*param* `vertices` — The table filled with vertex information tables for each vertex as follows:\n\n@*param* `mode` — How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.\n\n@*param* `usage` — The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.\n\n@*return* `mesh` — The new mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The table filled with vertex information tables for each vertex as follows:",
                            "finish": [
                                774,
                                39
                            ],
                            "name": "vertices",
                            "rawdesc": "The table filled with vertex information tables for each vertex as follows:",
                            "start": [
                                774,
                                31
                            ],
                            "type": "local",
                            "view": "{ [\"1\"]: number, [\"2\"]: number, [\"3\"]: number, [\"4\"]: number, [\"5\"]: number, [\"6\"]: number, [\"7\"]: number, [\"8\"]: number }"
                        },
                        {
                            "desc": "How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.",
                            "finish": [
                                774,
                                45
                            ],
                            "name": "mode",
                            "rawdesc": "How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.",
                            "start": [
                                774,
                                41
                            ],
                            "type": "local",
                            "view": "(\"fan\"|\"points\"|\"strip\"|\"triangles\")?"
                        },
                        {
                            "desc": "The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.",
                            "finish": [
                                774,
                                52
                            ],
                            "name": "usage",
                            "rawdesc": "The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.",
                            "start": [
                                774,
                                47
                            ],
                            "type": "local",
                            "view": "(\"dynamic\"|\"static\"|\"stream\")?"
                        }
                    ],
                    "desc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n@*param* `vertices` — The table filled with vertex information tables for each vertex as follows:\n\n@*param* `mode` — How the vertices are used when drawing. The default mode 'fan' is sufficient for simple convex polygons.\n\n@*param* `usage` — The expected usage of the Mesh. The specified usage mode affects the Mesh's memory usage and performance.\n\n@*return* `mesh` — The new mesh.\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                    "finish": [
                        774,
                        57
                    ],
                    "rawdesc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                    "returns": [
                        {
                            "desc": "The new mesh.",
                            "name": "mesh",
                            "rawdesc": "The new mesh.",
                            "type": "function.return",
                            "view": "love.Mesh"
                        }
                    ],
                    "start": [
                        774,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newMesh(vertices: { [\"1\"]: number, [\"2\"]: number, [\"3\"]: number, [\"4\"]: number, [\"5\"]: number, [\"6\"]: number, [\"7\"]: number, [\"8\"]: number }, mode?: \"fan\"|\"points\"|\"strip\"|\"triangles\", usage?: \"dynamic\"|\"static\"|\"stream\")\n  -> mesh: love.Mesh"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    774,
                    30
                ],
                "name": "newMesh",
                "rawdesc": "\nCreates a new Mesh.\n\nUse Mesh:setTexture if the Mesh should be textured with an Image or Canvas when it's drawn.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newMesh)\n\n\n---\n\n```lua\n-- \n-- How a Mesh's vertices are used when drawing.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MeshDrawMode)\n-- \nmode:\n    | \"fan\" -- The vertices create a \"fan\" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.\n    | \"strip\" -- The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.\n    | \"triangles\" -- The vertices create unconnected triangles.\n    | \"points\" -- The vertices are drawn as unconnected points (see love.graphics.setPointSize.)\n\n-- \n-- Usage hints for SpriteBatches and Meshes to optimize data storage and access.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/SpriteBatchUsage)\n-- \nusage:\n    | \"dynamic\" -- The object's data will change occasionally during its lifetime.\n    | \"static\" -- The object will not be modified after initial sprites or vertices are added.\n    | \"stream\" -- The object data will always change between draws.\n```",
                "start": [
                    774,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newMesh",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)\n\n\n---\n\n@*param* `image` — The image to use.\n\n@*param* `buffer` — The max number of particles at the same time.\n\n@*return* `system` — A new ParticleSystem.",
                "extends": {
                    "args": [
                        {
                            "desc": "The image to use.",
                            "finish": [
                                786,
                                46
                            ],
                            "name": "image",
                            "rawdesc": "The image to use.",
                            "start": [
                                786,
                                41
                            ],
                            "type": "local",
                            "view": "love.Image"
                        },
                        {
                            "desc": "The max number of particles at the same time.",
                            "finish": [
                                786,
                                54
                            ],
                            "name": "buffer",
                            "rawdesc": "The max number of particles at the same time.",
                            "start": [
                                786,
                                48
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)\n\n\n---\n\n@*param* `image` — The image to use.\n\n@*param* `buffer` — The max number of particles at the same time.\n\n@*return* `system` — A new ParticleSystem.",
                    "finish": [
                        786,
                        59
                    ],
                    "rawdesc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)",
                    "returns": [
                        {
                            "desc": "A new ParticleSystem.",
                            "name": "system",
                            "rawdesc": "A new ParticleSystem.",
                            "type": "function.return",
                            "view": "love.ParticleSystem"
                        }
                    ],
                    "start": [
                        786,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newParticleSystem(image: love.Image, buffer?: number)\n  -> system: love.ParticleSystem"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    786,
                    40
                ],
                "name": "newParticleSystem",
                "rawdesc": "\nCreates a new ParticleSystem.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newParticleSystem)",
                "start": [
                    786,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newParticleSystem",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)\n\n\n---\n\n@*param* `x` — The top-left position in the Image along the x-axis.\n\n@*param* `y` — The top-left position in the Image along the y-axis.\n\n@*param* `width` — The width of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `height` — The height of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `sw` — The reference width, the width of the Image. (Must be greater than 0.)\n\n@*param* `sh` — The reference height, the height of the Image. (Must be greater than 0.)\n\n@*return* `quad` — The new Quad.",
                "extends": {
                    "args": [
                        {
                            "desc": "The top-left position in the Image along the x-axis.",
                            "finish": [
                                804,
                                32
                            ],
                            "name": "x",
                            "rawdesc": "The top-left position in the Image along the x-axis.",
                            "start": [
                                804,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The top-left position in the Image along the y-axis.",
                            "finish": [
                                804,
                                35
                            ],
                            "name": "y",
                            "rawdesc": "The top-left position in the Image along the y-axis.",
                            "start": [
                                804,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The width of the Quad in the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                42
                            ],
                            "name": "width",
                            "rawdesc": "The width of the Quad in the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the Quad in the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                50
                            ],
                            "name": "height",
                            "rawdesc": "The height of the Quad in the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The reference width, the width of the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                54
                            ],
                            "name": "sw",
                            "rawdesc": "The reference width, the width of the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The reference height, the height of the Image. (Must be greater than 0.)",
                            "finish": [
                                804,
                                58
                            ],
                            "name": "sh",
                            "rawdesc": "The reference height, the height of the Image. (Must be greater than 0.)",
                            "start": [
                                804,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)\n\n\n---\n\n@*param* `x` — The top-left position in the Image along the x-axis.\n\n@*param* `y` — The top-left position in the Image along the y-axis.\n\n@*param* `width` — The width of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `height` — The height of the Quad in the Image. (Must be greater than 0.)\n\n@*param* `sw` — The reference width, the width of the Image. (Must be greater than 0.)\n\n@*param* `sh` — The reference height, the height of the Image. (Must be greater than 0.)\n\n@*return* `quad` — The new Quad.",
                    "finish": [
                        804,
                        63
                    ],
                    "rawdesc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)",
                    "returns": [
                        {
                            "desc": "The new Quad.",
                            "name": "quad",
                            "rawdesc": "The new Quad.",
                            "type": "function.return",
                            "view": "love.Quad"
                        }
                    ],
                    "start": [
                        804,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newQuad(x: number, y: number, width: number, height: number, sw: number, sh: number)\n  -> quad: love.Quad"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    804,
                    30
                ],
                "name": "newQuad",
                "rawdesc": "\nCreates a new Quad.\n\nThe purpose of a Quad is to use a fraction of an image to draw objects, as opposed to drawing entire image. It is most useful for sprite sheets and atlases: in a sprite atlas, multiple sprites reside in same image, quad is used to draw a specific sprite from that image; in animated sprites with all frames residing in the same image, quad is used to draw specific frame from the animation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newQuad)",
                "start": [
                    804,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newQuad",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)\n\n\n---\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `shader` — A Shader object for use in drawing operations.",
                "extends": {
                    "args": [
                        {
                            "desc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "finish": [
                                817,
                                37
                            ],
                            "name": "code",
                            "rawdesc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "start": [
                                817,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)\n\n\n---\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `shader` — A Shader object for use in drawing operations.",
                    "finish": [
                        817,
                        42
                    ],
                    "rawdesc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)",
                    "returns": [
                        {
                            "desc": "A Shader object for use in drawing operations.",
                            "name": "shader",
                            "rawdesc": "A Shader object for use in drawing operations.",
                            "type": "function.return",
                            "view": "love.Shader"
                        }
                    ],
                    "start": [
                        817,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newShader(code: string)\n  -> shader: love.Shader"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    817,
                    32
                ],
                "name": "newShader",
                "rawdesc": "\nCreates a new Shader object for hardware-accelerated vertex and pixel effects. A Shader contains either vertex shader code, pixel shader code, or both.\n\nShaders are small programs which are run on the graphics card when drawing. Vertex shaders are run once for each vertex (for example, an image has 4 vertices - one at each corner. A Mesh might have many more.) Pixel shaders are run once for each pixel on the screen which the drawn object touches. Pixel shader code is executed after all the object's vertices have been processed by the vertex shader.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newShader)",
                "start": [
                    817,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newShader",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)\n\n\n---\n\n@*param* `image` — The Image to use for the sprites.\n\n@*param* `maxsprites` — The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.\n\n@*return* `spriteBatch` — The new SpriteBatch.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Image to use for the sprites.",
                            "finish": [
                                830,
                                43
                            ],
                            "name": "image",
                            "rawdesc": "The Image to use for the sprites.",
                            "start": [
                                830,
                                38
                            ],
                            "type": "local",
                            "view": "love.Image"
                        },
                        {
                            "desc": "The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.",
                            "finish": [
                                830,
                                55
                            ],
                            "name": "maxsprites",
                            "rawdesc": "The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.",
                            "start": [
                                830,
                                45
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)\n\n\n---\n\n@*param* `image` — The Image to use for the sprites.\n\n@*param* `maxsprites` — The maximum number of sprites that the SpriteBatch can contain at any given time. Since version 11.0, additional sprites added past this number will automatically grow the spritebatch.\n\n@*return* `spriteBatch` — The new SpriteBatch.",
                    "finish": [
                        830,
                        60
                    ],
                    "rawdesc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)",
                    "returns": [
                        {
                            "desc": "The new SpriteBatch.",
                            "name": "spriteBatch",
                            "rawdesc": "The new SpriteBatch.",
                            "type": "function.return",
                            "view": "love.SpriteBatch"
                        }
                    ],
                    "start": [
                        830,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newSpriteBatch(image: love.Image, maxsprites?: number)\n  -> spriteBatch: love.SpriteBatch"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    830,
                    37
                ],
                "name": "newSpriteBatch",
                "rawdesc": "\nCreates a new SpriteBatch object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newSpriteBatch)",
                "start": [
                    830,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newSpriteBatch",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)\n\n\n---\n\n@*param* `font` — The font to use for the text.\n\n@*param* `textstring` — The initial string of text that the new Text object will contain. May be nil.\n\n@*return* `text` — The new drawable Text object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The font to use for the text.",
                            "finish": [
                                842,
                                35
                            ],
                            "name": "font",
                            "rawdesc": "The font to use for the text.",
                            "start": [
                                842,
                                31
                            ],
                            "type": "local",
                            "view": "love.Font"
                        },
                        {
                            "desc": "The initial string of text that the new Text object will contain. May be nil.",
                            "finish": [
                                842,
                                47
                            ],
                            "name": "textstring",
                            "rawdesc": "The initial string of text that the new Text object will contain. May be nil.",
                            "start": [
                                842,
                                37
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)\n\n\n---\n\n@*param* `font` — The font to use for the text.\n\n@*param* `textstring` — The initial string of text that the new Text object will contain. May be nil.\n\n@*return* `text` — The new drawable Text object.",
                    "finish": [
                        842,
                        52
                    ],
                    "rawdesc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)",
                    "returns": [
                        {
                            "desc": "The new drawable Text object.",
                            "name": "text",
                            "rawdesc": "The new drawable Text object.",
                            "type": "function.return",
                            "view": "love.Text"
                        }
                    ],
                    "start": [
                        842,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newText(font: love.Font, textstring?: string)\n  -> text: love.Text"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    842,
                    30
                ],
                "name": "newText",
                "rawdesc": "\nCreates a new drawable Text object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newText)",
                "start": [
                    842,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newText",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `video` — A new Video.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file path to the Ogg Theora video file.",
                            "finish": [
                                856,
                                40
                            ],
                            "name": "filename",
                            "rawdesc": "The file path to the Ogg Theora video file.",
                            "start": [
                                856,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `video` — A new Video.",
                    "finish": [
                        856,
                        45
                    ],
                    "rawdesc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)",
                    "returns": [
                        {
                            "desc": "A new Video.",
                            "name": "video",
                            "rawdesc": "A new Video.",
                            "type": "function.return",
                            "view": "love.Video"
                        }
                    ],
                    "start": [
                        856,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newVideo(filename: string)\n  -> video: love.Video"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    856,
                    31
                ],
                "name": "newVideo",
                "rawdesc": "\nCreates a new drawable Video. Currently only Ogg Theora video files are supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVideo)",
                "start": [
                    856,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newVideo",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)\n\n@*param* `layers` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.\n\n@*param* `settings` — Optional table of settings to configure the volume image, containing the following fields:\n\n@*return* `image` — A volume Image object.",
                "extends": {
                    "args": [
                        {
                            "desc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.",
                            "finish": [
                                875,
                                44
                            ],
                            "name": "layers",
                            "rawdesc": "A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.",
                            "start": [
                                875,
                                38
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "desc": "Optional table of settings to configure the volume image, containing the following fields:",
                            "finish": [
                                875,
                                54
                            ],
                            "name": "settings",
                            "rawdesc": "Optional table of settings to configure the volume image, containing the following fields:",
                            "start": [
                                875,
                                46
                            ],
                            "type": "local",
                            "view": "{ mipmaps: boolean, linear: boolean }?"
                        }
                    ],
                    "desc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)\n\n@*param* `layers` — A table containing filepaths to images (or File, FileData, ImageData, or CompressedImageData objects), in an array. A table of tables can also be given, where each sub-table represents a single mipmap level and contains all layers for that mipmap.\n\n@*param* `settings` — Optional table of settings to configure the volume image, containing the following fields:\n\n@*return* `image` — A volume Image object.",
                    "finish": [
                        875,
                        59
                    ],
                    "rawdesc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)",
                    "returns": [
                        {
                            "desc": "A volume Image object.",
                            "name": "image",
                            "rawdesc": "A volume Image object.",
                            "type": "function.return",
                            "view": "love.Image"
                        }
                    ],
                    "start": [
                        875,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.newVolumeImage(layers: table, settings?: { mipmaps: boolean, linear: boolean })\n  -> image: love.Image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    875,
                    37
                ],
                "name": "newVolumeImage",
                "rawdesc": "\nCreates a new volume (3D) Image.\n\nVolume images are 3D textures with width, height, and depth. They can't be rendered directly, they can only be used in Shader code (and sent to the shader via Shader:send).\n\nTo use a volume image in a Shader, it must be declared as a VolumeImage or sampler3D type (instead of Image or sampler2D). The Texel(VolumeImage image, vec3 texcoords) shader function must be used to get pixel colors from the volume image. The vec3 argument is a normalized texture coordinate with the z component representing the depth to sample at (ranging from 1).\n\nVolume images are typically used as lookup tables in shaders for color grading, for example, because sampling using a texture coordinate that is partway in between two pixels can interpolate across all 3 dimensions in the volume image, resulting in a smooth gradient even when a small-sized volume image is used as the lookup table.\n\nArray images are a much better choice than volume images for storing multiple different sprites in a single array image for directly drawing them.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.newVolumeImage)",
                "start": [
                    875,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.newVolumeImage",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                "extends": {
                    "args": [],
                    "desc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                    "finish": [
                        885,
                        35
                    ],
                    "rawdesc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                    "start": [
                        885,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.origin()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    885,
                    29
                ],
                "name": "origin",
                "rawdesc": "\nResets the current coordinate transformation.\n\nThis function is always used to reverse any previous calls to love.graphics.rotate, love.graphics.scale, love.graphics.shear or love.graphics.translate. It returns the current transformation state to its defaults.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.origin)",
                "start": [
                    885,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.origin",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)\n\n\n---\n\n@*param* `x` — The position of the first point on the x-axis.\n\n@*param* `y` — The position of the first point on the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The position of the first point on the x-axis.",
                            "finish": [
                                898,
                                31
                            ],
                            "name": "x",
                            "rawdesc": "The position of the first point on the x-axis.",
                            "start": [
                                898,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the first point on the y-axis.",
                            "finish": [
                                898,
                                34
                            ],
                            "name": "y",
                            "rawdesc": "The position of the first point on the y-axis.",
                            "start": [
                                898,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                898,
                                39
                            ],
                            "start": [
                                898,
                                36
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)\n\n\n---\n\n@*param* `x` — The position of the first point on the x-axis.\n\n@*param* `y` — The position of the first point on the y-axis.",
                    "finish": [
                        898,
                        44
                    ],
                    "rawdesc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)",
                    "start": [
                        898,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.points(x: number, y: number, ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    898,
                    29
                ],
                "name": "points",
                "rawdesc": "\nDraws one or more points.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.points)",
                "start": [
                    898,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.points",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n@*param* `mode` — How to draw the polygon.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the polygon.",
                            "finish": [
                                911,
                                35
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the polygon.",
                            "start": [
                                911,
                                31
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "finish": [
                                911,
                                40
                            ],
                            "start": [
                                911,
                                37
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n@*param* `mode` — How to draw the polygon.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        911,
                        45
                    ],
                    "rawdesc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        911,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.polygon(mode: \"fill\"|\"line\", ...number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    911,
                    30
                ],
                "name": "polygon",
                "rawdesc": "\nDraw a polygon.\n\nFollowing the mode argument, this function can accept multiple numeric arguments or a single table of numeric arguments. In either case the arguments are interpreted as alternating x and y coordinates of the polygon's vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.polygon)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    911,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.polygon",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                "extends": {
                    "args": [],
                    "desc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                    "finish": [
                        921,
                        32
                    ],
                    "rawdesc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                    "start": [
                        921,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.pop()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    921,
                    26
                ],
                "name": "pop",
                "rawdesc": "\nPops the current coordinate transformation from the transformation stack.\n\nThis function is always used to reverse a previous push operation. It returns the current transformation state to what it was before the last preceding push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.pop)",
                "start": [
                    921,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.pop",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                "extends": {
                    "args": [],
                    "desc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                    "finish": [
                        931,
                        36
                    ],
                    "rawdesc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                    "start": [
                        931,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.present()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    931,
                    30
                ],
                "name": "present",
                "rawdesc": "\nDisplays the results of drawing operations on the screen.\n\nThis function is used when writing your own love.run function. It presents all the results of your drawing operations on the screen. See the example in love.run for a typical use of this function.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.present)",
                "start": [
                    931,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.present",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)\n\n\n---\n\n@*param* `text` — The text to draw.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                "extends": {
                    "args": [
                        {
                            "desc": "The text to draw.",
                            "finish": [
                                964,
                                33
                            ],
                            "name": "text",
                            "rawdesc": "The text to draw.",
                            "start": [
                                964,
                                29
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "desc": "The position to draw the object (x-axis).",
                            "finish": [
                                964,
                                36
                            ],
                            "name": "x",
                            "rawdesc": "The position to draw the object (x-axis).",
                            "start": [
                                964,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The position to draw the object (y-axis).",
                            "finish": [
                                964,
                                39
                            ],
                            "name": "y",
                            "rawdesc": "The position to draw the object (y-axis).",
                            "start": [
                                964,
                                38
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                964,
                                42
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                964,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                964,
                                46
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                964,
                                44
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                964,
                                50
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                964,
                                48
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                964,
                                54
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                964,
                                52
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                964,
                                58
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                964,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                964,
                                62
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                964,
                                60
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                964,
                                66
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                964,
                                64
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)\n\n\n---\n\n@*param* `text` — The text to draw.\n\n@*param* `x` — The position to draw the object (x-axis).\n\n@*param* `y` — The position to draw the object (y-axis).\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).",
                    "finish": [
                        964,
                        71
                    ],
                    "rawdesc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)",
                    "start": [
                        964,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.print(text: string|number, x?: number, y?: number, r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    964,
                    28
                ],
                "name": "print",
                "rawdesc": "\nDraws text on screen. If no Font is set, one will be created and set (once) if needed.\n\nAs of LOVE 0.7.1, when using translation and scaling functions while drawing text, this function assumes the scale occurs first.\n\nIf you don't script with this in mind, the text won't be in the right position, or possibly even on screen.\n\nlove.graphics.print and love.graphics.printf both support UTF-8 encoding. You'll also need a proper Font for special characters.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.print)",
                "start": [
                    964,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.print",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n@*param* `text` — A text string.\n\n@*param* `x` — The position on the x-axis.\n\n@*param* `y` — The position on the y-axis.\n\n@*param* `limit` — Wrap the line after this many horizontal pixels.\n\n@*param* `align` — The alignment.\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "A text string.",
                            "finish": [
                                1002,
                                34
                            ],
                            "name": "text",
                            "rawdesc": "A text string.",
                            "start": [
                                1002,
                                30
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "desc": "The position on the x-axis.",
                            "finish": [
                                1002,
                                37
                            ],
                            "name": "x",
                            "rawdesc": "The position on the x-axis.",
                            "start": [
                                1002,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position on the y-axis.",
                            "finish": [
                                1002,
                                40
                            ],
                            "name": "y",
                            "rawdesc": "The position on the y-axis.",
                            "start": [
                                1002,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Wrap the line after this many horizontal pixels.",
                            "finish": [
                                1002,
                                47
                            ],
                            "name": "limit",
                            "rawdesc": "Wrap the line after this many horizontal pixels.",
                            "start": [
                                1002,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alignment.",
                            "finish": [
                                1002,
                                54
                            ],
                            "name": "align",
                            "rawdesc": "The alignment.",
                            "start": [
                                1002,
                                49
                            ],
                            "type": "local",
                            "view": "(\"center\"|\"justify\"|\"left\"|\"right\")?"
                        },
                        {
                            "desc": "Orientation (radians).",
                            "finish": [
                                1002,
                                57
                            ],
                            "name": "r",
                            "rawdesc": "Orientation (radians).",
                            "start": [
                                1002,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (x-axis).",
                            "finish": [
                                1002,
                                61
                            ],
                            "name": "sx",
                            "rawdesc": "Scale factor (x-axis).",
                            "start": [
                                1002,
                                59
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Scale factor (y-axis).",
                            "finish": [
                                1002,
                                65
                            ],
                            "name": "sy",
                            "rawdesc": "Scale factor (y-axis).",
                            "start": [
                                1002,
                                63
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (x-axis).",
                            "finish": [
                                1002,
                                69
                            ],
                            "name": "ox",
                            "rawdesc": "Origin offset (x-axis).",
                            "start": [
                                1002,
                                67
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Origin offset (y-axis).",
                            "finish": [
                                1002,
                                73
                            ],
                            "name": "oy",
                            "rawdesc": "Origin offset (y-axis).",
                            "start": [
                                1002,
                                71
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (x-axis).",
                            "finish": [
                                1002,
                                77
                            ],
                            "name": "kx",
                            "rawdesc": "Shearing factor (x-axis).",
                            "start": [
                                1002,
                                75
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Shearing factor (y-axis).",
                            "finish": [
                                1002,
                                81
                            ],
                            "name": "ky",
                            "rawdesc": "Shearing factor (y-axis).",
                            "start": [
                                1002,
                                79
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n@*param* `text` — A text string.\n\n@*param* `x` — The position on the x-axis.\n\n@*param* `y` — The position on the y-axis.\n\n@*param* `limit` — Wrap the line after this many horizontal pixels.\n\n@*param* `align` — The alignment.\n\n@*param* `r` — Orientation (radians).\n\n@*param* `sx` — Scale factor (x-axis).\n\n@*param* `sy` — Scale factor (y-axis).\n\n@*param* `ox` — Origin offset (x-axis).\n\n@*param* `oy` — Origin offset (y-axis).\n\n@*param* `kx` — Shearing factor (x-axis).\n\n@*param* `ky` — Shearing factor (y-axis).\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "finish": [
                        1002,
                        86
                    ],
                    "rawdesc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                    "start": [
                        1002,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.printf(text: string|number, x: number, y: number, limit: number, align?: \"center\"|\"justify\"|\"left\"|\"right\", r?: number, sx?: number, sy?: number, ox?: number, oy?: number, kx?: number, ky?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1002,
                    29
                ],
                "name": "printf",
                "rawdesc": "\nDraws formatted text, with word wrap and alignment.\n\nSee additional notes in love.graphics.print.\n\nThe word wrap limit is applied before any scaling, rotation, and other coordinate transformations. Therefore the amount of text per line stays constant given the same wrap limit, even if the scale arguments change.\n\nIn version 0.9.2 and earlier, wrapping was implemented by breaking up words by spaces and putting them back together to make sure things fit nicely within the limit provided. However, due to the way this is done, extra spaces between words would end up missing when printed on the screen, and some lines could overflow past the provided wrap limit. In version 0.10.0 and newer this is no longer the case.\n\nIn versions prior to 11.0, color and byte component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.printf)\n\n\n---\n\n```lua\n-- \n-- Text alignment.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/AlignMode)\n-- \nalign:\n    | \"center\" -- Align text center.\n    | \"left\" -- Align text left.\n    | \"right\" -- Align text right.\n    | \"justify\" -- Align text both left and right.\n```",
                "start": [
                    1002,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.printf",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                "extends": {
                    "args": [],
                    "desc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                    "finish": [
                        1013,
                        33
                    ],
                    "rawdesc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                    "start": [
                        1013,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.push()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1013,
                    27
                ],
                "name": "push",
                "rawdesc": "\nCopies and pushes the current coordinate transformation to the transformation stack.\n\nThis function is always used to prepare for a corresponding pop operation later. It stores the current coordinate transformation state into the transformation stack and keeps it active. Later changes to the transformation can be undone by using the pop operation, which returns the coordinate transform to the state it was in before calling push.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.push)",
                "start": [
                    1013,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.push",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n@*param* `mode` — How to draw the rectangle.\n\n@*param* `x` — The position of top-left corner along the x-axis.\n\n@*param* `y` — The position of top-left corner along the y-axis.\n\n@*param* `width` — Width of the rectangle.\n\n@*param* `height` — Height of the rectangle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "How to draw the rectangle.",
                            "finish": [
                                1027,
                                37
                            ],
                            "name": "mode",
                            "rawdesc": "How to draw the rectangle.",
                            "start": [
                                1027,
                                33
                            ],
                            "type": "local",
                            "view": "\"fill\"|\"line\""
                        },
                        {
                            "desc": "The position of top-left corner along the x-axis.",
                            "finish": [
                                1027,
                                40
                            ],
                            "name": "x",
                            "rawdesc": "The position of top-left corner along the x-axis.",
                            "start": [
                                1027,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The position of top-left corner along the y-axis.",
                            "finish": [
                                1027,
                                43
                            ],
                            "name": "y",
                            "rawdesc": "The position of top-left corner along the y-axis.",
                            "start": [
                                1027,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Width of the rectangle.",
                            "finish": [
                                1027,
                                50
                            ],
                            "name": "width",
                            "rawdesc": "Width of the rectangle.",
                            "start": [
                                1027,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Height of the rectangle.",
                            "finish": [
                                1027,
                                58
                            ],
                            "name": "height",
                            "rawdesc": "Height of the rectangle.",
                            "start": [
                                1027,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n@*param* `mode` — How to draw the rectangle.\n\n@*param* `x` — The position of top-left corner along the x-axis.\n\n@*param* `y` — The position of top-left corner along the y-axis.\n\n@*param* `width` — Width of the rectangle.\n\n@*param* `height` — Height of the rectangle.\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "finish": [
                        1027,
                        63
                    ],
                    "rawdesc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                    "start": [
                        1027,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.rectangle(mode: \"fill\"|\"line\", x: number, y: number, width: number, height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1027,
                    32
                ],
                "name": "rectangle",
                "rawdesc": "\nDraws a rectangle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rectangle)\n\n\n---\n\n```lua\n-- \n-- Controls whether shapes are drawn as an outline, or filled.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DrawMode)\n-- \nmode:\n    | \"fill\" -- Draw filled shape.\n    | \"line\" -- Draw outlined shape.\n```",
                "start": [
                    1027,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.rectangle",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)\n\n@*param* `transform` — The Transform object to replace the current graphics coordinate transform with.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Transform object to replace the current graphics coordinate transform with.",
                            "finish": [
                                1036,
                                49
                            ],
                            "name": "transform",
                            "rawdesc": "The Transform object to replace the current graphics coordinate transform with.",
                            "start": [
                                1036,
                                40
                            ],
                            "type": "local",
                            "view": "love.Transform"
                        }
                    ],
                    "desc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)\n\n@*param* `transform` — The Transform object to replace the current graphics coordinate transform with.",
                    "finish": [
                        1036,
                        54
                    ],
                    "rawdesc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)",
                    "start": [
                        1036,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.replaceTransform(transform: love.Transform)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1036,
                    39
                ],
                "name": "replaceTransform",
                "rawdesc": "\nReplaces the current coordinate transformation with the given Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.replaceTransform)",
                "start": [
                    1036,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.replaceTransform",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                "extends": {
                    "args": [],
                    "desc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                    "finish": [
                        1046,
                        34
                    ],
                    "rawdesc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                    "start": [
                        1046,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.reset()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1046,
                    28
                ],
                "name": "reset",
                "rawdesc": "\nResets the current graphics settings.\n\nCalling reset makes the current drawing color white, the current background color black, disables any active color component masks, disables wireframe mode and resets the current graphics transformation to the origin. It also sets both the point and line drawing modes to smooth and their sizes to 1.0.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.reset)",
                "start": [
                    1046,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.reset",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)\n\n@*param* `angle` — The amount to rotate the coordinate system in radians.",
                "extends": {
                    "args": [
                        {
                            "desc": "The amount to rotate the coordinate system in radians.",
                            "finish": [
                                1057,
                                35
                            ],
                            "name": "angle",
                            "rawdesc": "The amount to rotate the coordinate system in radians.",
                            "start": [
                                1057,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)\n\n@*param* `angle` — The amount to rotate the coordinate system in radians.",
                    "finish": [
                        1057,
                        40
                    ],
                    "rawdesc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)",
                    "start": [
                        1057,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.rotate(angle: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1057,
                    29
                ],
                "name": "rotate",
                "rawdesc": "\nRotates the coordinate system in two dimensions.\n\nCalling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.rotate)",
                "start": [
                    1057,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.rotate",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)\n\n@*param* `sx` — The scaling in the direction of the x-axis.\n\n@*param* `sy` — The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                "extends": {
                    "args": [
                        {
                            "desc": "The scaling in the direction of the x-axis.",
                            "finish": [
                                1075,
                                31
                            ],
                            "name": "sx",
                            "rawdesc": "The scaling in the direction of the x-axis.",
                            "start": [
                                1075,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                            "finish": [
                                1075,
                                35
                            ],
                            "name": "sy",
                            "rawdesc": "The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                            "start": [
                                1075,
                                33
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)\n\n@*param* `sx` — The scaling in the direction of the x-axis.\n\n@*param* `sy` — The scaling in the direction of the y-axis. If omitted, it defaults to same as parameter sx.",
                    "finish": [
                        1075,
                        40
                    ],
                    "rawdesc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)",
                    "start": [
                        1075,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.scale(sx: number, sy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1075,
                    28
                ],
                "name": "scale",
                "rawdesc": "\nScales the coordinate system in two dimensions.\n\nBy default the coordinate system in LÖVE corresponds to the display pixels in horizontal and vertical directions one-to-one, and the x-axis increases towards the right while the y-axis increases downwards. Scaling the coordinate system changes this relation.\n\nAfter scaling by sx and sy, all coordinates are treated as if they were multiplied by sx and sy. Every result of a drawing operation is also correspondingly scaled, so scaling by (2, 2) for example would mean making everything twice as large in both x- and y-directions. Scaling by a negative value flips the coordinate system in the corresponding direction, which also means everything will be drawn flipped or upside down, or both. Scaling by zero is not a useful operation.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nScaling lasts until love.draw() exits.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.scale)",
                "start": [
                    1075,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.scale",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)\n\n\n---\n\n@*param* `red` — The red component (0-1).\n\n@*param* `green` — The green component (0-1).\n\n@*param* `blue` — The blue component (0-1).\n\n@*param* `alpha` — The alpha component (0-1).",
                "extends": {
                    "args": [
                        {
                            "desc": "The red component (0-1).",
                            "finish": [
                                1088,
                                45
                            ],
                            "name": "red",
                            "rawdesc": "The red component (0-1).",
                            "start": [
                                1088,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green component (0-1).",
                            "finish": [
                                1088,
                                52
                            ],
                            "name": "green",
                            "rawdesc": "The green component (0-1).",
                            "start": [
                                1088,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue component (0-1).",
                            "finish": [
                                1088,
                                58
                            ],
                            "name": "blue",
                            "rawdesc": "The blue component (0-1).",
                            "start": [
                                1088,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The alpha component (0-1).",
                            "finish": [
                                1088,
                                65
                            ],
                            "name": "alpha",
                            "rawdesc": "The alpha component (0-1).",
                            "start": [
                                1088,
                                60
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)\n\n\n---\n\n@*param* `red` — The red component (0-1).\n\n@*param* `green` — The green component (0-1).\n\n@*param* `blue` — The blue component (0-1).\n\n@*param* `alpha` — The alpha component (0-1).",
                    "finish": [
                        1088,
                        70
                    ],
                    "rawdesc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)",
                    "start": [
                        1088,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setBackgroundColor(red: number, green: number, blue: number, alpha?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1088,
                    41
                ],
                "name": "setBackgroundColor",
                "rawdesc": "\nSets the background color.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBackgroundColor)",
                "start": [
                    1088,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setBackgroundColor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n@*param* `mode` — The blend mode to use.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The blend mode to use.",
                            "finish": [
                                1098,
                                40
                            ],
                            "name": "mode",
                            "rawdesc": "The blend mode to use.",
                            "start": [
                                1098,
                                36
                            ],
                            "type": "local",
                            "view": "\"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7)"
                        }
                    ],
                    "desc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n@*param* `mode` — The blend mode to use.\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                    "finish": [
                        1098,
                        45
                    ],
                    "rawdesc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                    "start": [
                        1098,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setBlendMode(mode: \"add\"|\"additive\"|\"alpha\"|\"darken\"|\"lighten\"...(+7))"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1098,
                    35
                ],
                "name": "setBlendMode",
                "rawdesc": "\nSets the blending mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setBlendMode)\n\n\n---\n\n```lua\n-- \n-- Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BlendMode)\n-- \nmode:\n    | \"alpha\" -- Alpha blending (normal). The alpha of what's drawn determines its opacity.\n    | \"replace\" -- The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.\n    | \"screen\" -- 'Screen' blending.\n    | \"add\" -- The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"subtract\" -- The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.\n    | \"multiply\" -- The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the \"alphamultiply\" BlendAlphaMode is used.\n    | \"lighten\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"darken\" -- The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the \"premultiplied\" BlendAlphaMode is used in love.graphics.setBlendMode.\n    | \"additive\" -- Additive blend mode.\n    | \"subtractive\" -- Subtractive blend mode.\n    | \"multiplicative\" -- Multiply blend mode.\n    | \"premultiplied\" -- Premultiplied alpha blend mode.\n```",
                "start": [
                    1098,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setBlendMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)\n\n\n---\n\n@*param* `canvas` — The new target.\n\n@*param* `mipmap` — The mipmap level to render to, for Canvases with mipmaps.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new target.",
                            "finish": [
                                1112,
                                39
                            ],
                            "name": "canvas",
                            "rawdesc": "The new target.",
                            "start": [
                                1112,
                                33
                            ],
                            "type": "local",
                            "view": "love.Canvas"
                        },
                        {
                            "desc": "The mipmap level to render to, for Canvases with mipmaps.",
                            "finish": [
                                1112,
                                47
                            ],
                            "name": "mipmap",
                            "rawdesc": "The mipmap level to render to, for Canvases with mipmaps.",
                            "start": [
                                1112,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)\n\n\n---\n\n@*param* `canvas` — The new target.\n\n@*param* `mipmap` — The mipmap level to render to, for Canvases with mipmaps.",
                    "finish": [
                        1112,
                        52
                    ],
                    "rawdesc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)",
                    "start": [
                        1112,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setCanvas(canvas: love.Canvas, mipmap?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1112,
                    32
                ],
                "name": "setCanvas",
                "rawdesc": "\nCaptures drawing operations to a Canvas.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setCanvas)",
                "start": [
                    1112,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setCanvas",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)\n\n\n---\n\n@*param* `red` — The amount of red.\n\n@*param* `green` — The amount of green.\n\n@*param* `blue` — The amount of blue.\n\n@*param* `alpha` — The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                "extends": {
                    "args": [
                        {
                            "desc": "The amount of red.",
                            "finish": [
                                1127,
                                35
                            ],
                            "name": "red",
                            "rawdesc": "The amount of red.",
                            "start": [
                                1127,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of green.",
                            "finish": [
                                1127,
                                42
                            ],
                            "name": "green",
                            "rawdesc": "The amount of green.",
                            "start": [
                                1127,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of blue.",
                            "finish": [
                                1127,
                                48
                            ],
                            "name": "blue",
                            "rawdesc": "The amount of blue.",
                            "start": [
                                1127,
                                44
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                            "finish": [
                                1127,
                                55
                            ],
                            "name": "alpha",
                            "rawdesc": "The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                            "start": [
                                1127,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)\n\n\n---\n\n@*param* `red` — The amount of red.\n\n@*param* `green` — The amount of green.\n\n@*param* `blue` — The amount of blue.\n\n@*param* `alpha` — The amount of alpha.  The alpha value will be applied to all subsequent draw operations, even the drawing of an image.",
                    "finish": [
                        1127,
                        60
                    ],
                    "rawdesc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)",
                    "start": [
                        1127,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setColor(red: number, green: number, blue: number, alpha?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1127,
                    31
                ],
                "name": "setColor",
                "rawdesc": "\nSets the color used for drawing.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColor)",
                "start": [
                    1127,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setColor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)\n\n\n---\n\n@*param* `red` — Render red component.\n\n@*param* `green` — Render green component.\n\n@*param* `blue` — Render blue component.\n\n@*param* `alpha` — Render alpha component.",
                "extends": {
                    "args": [
                        {
                            "desc": "Render red component.",
                            "finish": [
                                1140,
                                39
                            ],
                            "name": "red",
                            "rawdesc": "Render red component.",
                            "start": [
                                1140,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Render green component.",
                            "finish": [
                                1140,
                                46
                            ],
                            "name": "green",
                            "rawdesc": "Render green component.",
                            "start": [
                                1140,
                                41
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Render blue component.",
                            "finish": [
                                1140,
                                52
                            ],
                            "name": "blue",
                            "rawdesc": "Render blue component.",
                            "start": [
                                1140,
                                48
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "Render alpha component.",
                            "finish": [
                                1140,
                                59
                            ],
                            "name": "alpha",
                            "rawdesc": "Render alpha component.",
                            "start": [
                                1140,
                                54
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)\n\n\n---\n\n@*param* `red` — Render red component.\n\n@*param* `green` — Render green component.\n\n@*param* `blue` — Render blue component.\n\n@*param* `alpha` — Render alpha component.",
                    "finish": [
                        1140,
                        64
                    ],
                    "rawdesc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)",
                    "start": [
                        1140,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1140,
                    35
                ],
                "name": "setColorMask",
                "rawdesc": "\nSets the color mask. Enables or disables specific color components when rendering and clearing the screen. For example, if '''red''' is set to '''false''', no further changes will be made to the red component of any pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setColorMask)",
                "start": [
                    1140,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setColorMask",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n@*param* `min` — Filter mode used when scaling the image down.\n\n@*param* `mag` — Filter mode used when scaling the image up.\n\n@*param* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Filter mode used when scaling the image down.",
                            "finish": [
                                1151,
                                43
                            ],
                            "name": "min",
                            "rawdesc": "Filter mode used when scaling the image down.",
                            "start": [
                                1151,
                                40
                            ],
                            "type": "local",
                            "view": "\"linear\"|\"nearest\""
                        },
                        {
                            "desc": "Filter mode used when scaling the image up.",
                            "finish": [
                                1151,
                                48
                            ],
                            "name": "mag",
                            "rawdesc": "Filter mode used when scaling the image up.",
                            "start": [
                                1151,
                                45
                            ],
                            "type": "local",
                            "view": "(\"linear\"|\"nearest\")?"
                        },
                        {
                            "desc": "Maximum amount of Anisotropic Filtering used.",
                            "finish": [
                                1151,
                                60
                            ],
                            "name": "anisotropy",
                            "rawdesc": "Maximum amount of Anisotropic Filtering used.",
                            "start": [
                                1151,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n@*param* `min` — Filter mode used when scaling the image down.\n\n@*param* `mag` — Filter mode used when scaling the image up.\n\n@*param* `anisotropy` — Maximum amount of Anisotropic Filtering used.\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "finish": [
                        1151,
                        65
                    ],
                    "rawdesc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                    "start": [
                        1151,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setDefaultFilter(min: \"linear\"|\"nearest\", mag?: \"linear\"|\"nearest\", anisotropy?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1151,
                    39
                ],
                "name": "setDefaultFilter",
                "rawdesc": "\nSets the default scaling filters used with Images, Canvases, and Fonts.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDefaultFilter)\n\n\n```lua\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmin:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n\n-- \n-- How the image is filtered when scaling.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FilterMode)\n-- \nmag:\n    | \"linear\" -- Scale image with linear interpolation.\n    | \"nearest\" -- Scale image with nearest neighbor interpolation.\n```",
                "start": [
                    1151,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setDefaultFilter",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n@*param* `comparemode` — Depth comparison mode used for depth testing.\n\n@*param* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Depth comparison mode used for depth testing.",
                            "finish": [
                                1164,
                                47
                            ],
                            "name": "comparemode",
                            "rawdesc": "Depth comparison mode used for depth testing.",
                            "start": [
                                1164,
                                36
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "Whether to write update / write values to the depth buffer when rendering.",
                            "finish": [
                                1164,
                                54
                            ],
                            "name": "write",
                            "rawdesc": "Whether to write update / write values to the depth buffer when rendering.",
                            "start": [
                                1164,
                                49
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n@*param* `comparemode` — Depth comparison mode used for depth testing.\n\n@*param* `write` — Whether to write update / write values to the depth buffer when rendering.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        1164,
                        59
                    ],
                    "rawdesc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        1164,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setDepthMode(comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3), write: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1164,
                    35
                ],
                "name": "setDepthMode",
                "rawdesc": "\nConfigures depth testing and writing to the depth buffer.\n\nThis is low-level functionality designed for use with custom vertex shaders and Meshes with custom vertex attributes. No higher level APIs are provided to set the depth of 2D graphics such as shapes, lines, and Images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setDepthMode)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    1164,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setDepthMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)\n\n@*param* `font` — The Font object to use.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Font object to use.",
                            "finish": [
                                1175,
                                35
                            ],
                            "name": "font",
                            "rawdesc": "The Font object to use.",
                            "start": [
                                1175,
                                31
                            ],
                            "type": "local",
                            "view": "love.Font"
                        }
                    ],
                    "desc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)\n\n@*param* `font` — The Font object to use.",
                    "finish": [
                        1175,
                        40
                    ],
                    "rawdesc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)",
                    "start": [
                        1175,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setFont(font: love.Font)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1175,
                    30
                ],
                "name": "setFont",
                "rawdesc": "\nSet an already-loaded Font as the current font or create and load a new one from the file and size.\n\nIt's recommended that Font objects are created with love.graphics.newFont in the loading stage and then passed to this function in the drawing stage.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFont)",
                "start": [
                    1175,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setFont",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n@*param* `winding` — The winding mode to use. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The winding mode to use. The default winding is counterclockwise ('ccw').",
                            "finish": [
                                1186,
                                50
                            ],
                            "name": "winding",
                            "rawdesc": "The winding mode to use. The default winding is counterclockwise ('ccw').",
                            "start": [
                                1186,
                                43
                            ],
                            "type": "local",
                            "view": "\"ccw\"|\"cw\""
                        }
                    ],
                    "desc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n@*param* `winding` — The winding mode to use. The default winding is counterclockwise ('ccw').\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "finish": [
                        1186,
                        55
                    ],
                    "rawdesc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                    "start": [
                        1186,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setFrontFaceWinding(winding: \"ccw\"|\"cw\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1186,
                    42
                ],
                "name": "setFrontFaceWinding",
                "rawdesc": "\nSets whether triangles with clockwise- or counterclockwise-ordered vertices are considered front-facing.\n\nThis is designed for use in combination with Mesh face culling. Other love.graphics shapes, lines, and sprites are not guaranteed to have a specific winding order to their internal vertices.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setFrontFaceWinding)\n\n\n```lua\n-- \n-- How Mesh geometry vertices are ordered.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/VertexWinding)\n-- \nwinding:\n    | \"cw\" -- Clockwise.\n    | \"ccw\" -- Counter-clockwise.\n```",
                "start": [
                    1186,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setFrontFaceWinding",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n@*param* `join` — The LineJoin to use.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The LineJoin to use.",
                            "finish": [
                                1195,
                                39
                            ],
                            "name": "join",
                            "rawdesc": "The LineJoin to use.",
                            "start": [
                                1195,
                                35
                            ],
                            "type": "local",
                            "view": "\"bevel\"|\"miter\"|\"none\""
                        }
                    ],
                    "desc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n@*param* `join` — The LineJoin to use.\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "finish": [
                        1195,
                        44
                    ],
                    "rawdesc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                    "start": [
                        1195,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setLineJoin(join: \"bevel\"|\"miter\"|\"none\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1195,
                    34
                ],
                "name": "setLineJoin",
                "rawdesc": "\nSets the line join style. See LineJoin for the possible options.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineJoin)\n\n\n```lua\n-- \n-- Line join style.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineJoin)\n-- \njoin:\n    | \"miter\" -- The ends of the line segments beveled in an angle so that they join seamlessly.\n    | \"none\" -- No cap applied to the ends of the line segments.\n    | \"bevel\" -- Flattens the point where line segments join together.\n```",
                "start": [
                    1195,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setLineJoin",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n@*param* `style` — The LineStyle to use. Line styles include smooth and rough.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The LineStyle to use. Line styles include smooth and rough.",
                            "finish": [
                                1204,
                                41
                            ],
                            "name": "style",
                            "rawdesc": "The LineStyle to use. Line styles include smooth and rough.",
                            "start": [
                                1204,
                                36
                            ],
                            "type": "local",
                            "view": "\"rough\"|\"smooth\""
                        }
                    ],
                    "desc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n@*param* `style` — The LineStyle to use. Line styles include smooth and rough.\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "finish": [
                        1204,
                        46
                    ],
                    "rawdesc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                    "start": [
                        1204,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setLineStyle(style: \"rough\"|\"smooth\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1204,
                    35
                ],
                "name": "setLineStyle",
                "rawdesc": "\nSets the line style.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineStyle)\n\n\n```lua\n-- \n-- The styles in which lines are drawn.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/LineStyle)\n-- \nstyle:\n    | \"rough\" -- Draw rough lines.\n    | \"smooth\" -- Draw smooth lines.\n```",
                "start": [
                    1204,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setLineStyle",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)\n\n@*param* `width` — The width of the line.",
                "extends": {
                    "args": [
                        {
                            "desc": "The width of the line.",
                            "finish": [
                                1213,
                                41
                            ],
                            "name": "width",
                            "rawdesc": "The width of the line.",
                            "start": [
                                1213,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)\n\n@*param* `width` — The width of the line.",
                    "finish": [
                        1213,
                        46
                    ],
                    "rawdesc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)",
                    "start": [
                        1213,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setLineWidth(width: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1213,
                    35
                ],
                "name": "setLineWidth",
                "rawdesc": "\nSets the line width.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setLineWidth)",
                "start": [
                    1213,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setLineWidth",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n@*param* `mode` — The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "finish": [
                                1226,
                                43
                            ],
                            "name": "mode",
                            "rawdesc": "The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).",
                            "start": [
                                1226,
                                39
                            ],
                            "type": "local",
                            "view": "\"back\"|\"front\"|\"none\""
                        }
                    ],
                    "desc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n@*param* `mode` — The Mesh face culling mode to use (whether to render everything, cull back-facing triangles, or cull front-facing triangles).\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "finish": [
                        1226,
                        48
                    ],
                    "rawdesc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                    "start": [
                        1226,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setMeshCullMode(mode: \"back\"|\"front\"|\"none\")"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1226,
                    38
                ],
                "name": "setMeshCullMode",
                "rawdesc": "\nSets whether back-facing triangles in a Mesh are culled.\n\nThis is designed for use with low level custom hardware-accelerated 3D rendering via custom vertex attributes on Meshes, custom vertex shaders, and depth testing with a depth buffer.\n\nBy default, both front- and back-facing triangles in Meshes are rendered.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setMeshCullMode)\n\n\n```lua\n-- \n-- How Mesh geometry is culled when rendering.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CullMode)\n-- \nmode:\n    | \"back\" -- Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.\n    | \"front\" -- Front-facing triangles in Meshes are culled.\n    | \"none\" -- Both back- and front-facing triangles in Meshes are rendered.\n```",
                "start": [
                    1226,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setMeshCullMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)\n\n\n---\n\n@*param* `size` — The size of the font.\n\n@*return* `font` — The new font.",
                "extends": {
                    "args": [
                        {
                            "desc": "The size of the font.",
                            "finish": [
                                1240,
                                38
                            ],
                            "name": "size",
                            "rawdesc": "The size of the font.",
                            "start": [
                                1240,
                                34
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)\n\n\n---\n\n@*param* `size` — The size of the font.\n\n@*return* `font` — The new font.",
                    "finish": [
                        1240,
                        43
                    ],
                    "rawdesc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)",
                    "returns": [
                        {
                            "desc": "The new font.",
                            "name": "font",
                            "rawdesc": "The new font.",
                            "type": "function.return",
                            "view": "love.Font"
                        }
                    ],
                    "start": [
                        1240,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setNewFont(size?: number)\n  -> font: love.Font"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1240,
                    33
                ],
                "name": "setNewFont",
                "rawdesc": "\nCreates and sets a new Font.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setNewFont)",
                "start": [
                    1240,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setNewFont",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)\n\n@*param* `size` — The new point size.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new point size.",
                            "finish": [
                                1249,
                                40
                            ],
                            "name": "size",
                            "rawdesc": "The new point size.",
                            "start": [
                                1249,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)\n\n@*param* `size` — The new point size.",
                    "finish": [
                        1249,
                        45
                    ],
                    "rawdesc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)",
                    "start": [
                        1249,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setPointSize(size: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1249,
                    35
                ],
                "name": "setPointSize",
                "rawdesc": "\nSets the point size.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setPointSize)",
                "start": [
                    1249,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setPointSize",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)\n\n\n---\n\n@*param* `x` — x coordinate of upper left corner.\n\n@*param* `y` — y coordinate of upper left corner.\n\n@*param* `width` — width of clipping rectangle.\n\n@*param* `height` — height of clipping rectangle.",
                "extends": {
                    "args": [
                        {
                            "desc": "x coordinate of upper left corner.",
                            "finish": [
                                1266,
                                35
                            ],
                            "name": "x",
                            "rawdesc": "x coordinate of upper left corner.",
                            "start": [
                                1266,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "y coordinate of upper left corner.",
                            "finish": [
                                1266,
                                38
                            ],
                            "name": "y",
                            "rawdesc": "y coordinate of upper left corner.",
                            "start": [
                                1266,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "width of clipping rectangle.",
                            "finish": [
                                1266,
                                45
                            ],
                            "name": "width",
                            "rawdesc": "width of clipping rectangle.",
                            "start": [
                                1266,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "height of clipping rectangle.",
                            "finish": [
                                1266,
                                53
                            ],
                            "name": "height",
                            "rawdesc": "height of clipping rectangle.",
                            "start": [
                                1266,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)\n\n\n---\n\n@*param* `x` — x coordinate of upper left corner.\n\n@*param* `y` — y coordinate of upper left corner.\n\n@*param* `width` — width of clipping rectangle.\n\n@*param* `height` — height of clipping rectangle.",
                    "finish": [
                        1266,
                        58
                    ],
                    "rawdesc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)",
                    "start": [
                        1266,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setScissor(x: number, y: number, width: number, height: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1266,
                    33
                ],
                "name": "setScissor",
                "rawdesc": "\nSets or disables scissor.\n\nThe scissor limits the drawing area to a specified rectangle. This affects all graphics calls, including love.graphics.clear.\n\nThe dimensions of the scissor is unaffected by graphical transformations (translate, scale, ...).\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setScissor)",
                "start": [
                    1266,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setScissor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)\n\n\n---\n\n@*param* `shader` — The new shader.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new shader.",
                            "finish": [
                                1276,
                                39
                            ],
                            "name": "shader",
                            "rawdesc": "The new shader.",
                            "start": [
                                1276,
                                33
                            ],
                            "type": "local",
                            "view": "love.Shader"
                        }
                    ],
                    "desc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)\n\n\n---\n\n@*param* `shader` — The new shader.",
                    "finish": [
                        1276,
                        44
                    ],
                    "rawdesc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)",
                    "start": [
                        1276,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setShader(shader: love.Shader)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1276,
                    32
                ],
                "name": "setShader",
                "rawdesc": "\nSets or resets a Shader as the current pixel effect or vertex shaders. All drawing operations until the next ''love.graphics.setShader'' will be drawn using the Shader object specified.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setShader)",
                "start": [
                    1276,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setShader",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n@*param* `comparemode` — The type of comparison to make for each pixel.\n\n@*param* `comparevalue` — The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The type of comparison to make for each pixel.",
                            "finish": [
                                1289,
                                49
                            ],
                            "name": "comparemode",
                            "rawdesc": "The type of comparison to make for each pixel.",
                            "start": [
                                1289,
                                38
                            ],
                            "type": "local",
                            "view": "\"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3)"
                        },
                        {
                            "desc": "The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.",
                            "finish": [
                                1289,
                                63
                            ],
                            "name": "comparevalue",
                            "rawdesc": "The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.",
                            "start": [
                                1289,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n@*param* `comparemode` — The type of comparison to make for each pixel.\n\n@*param* `comparevalue` — The value to use when comparing with the stencil value of each pixel. Must be between 0 and 255.\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "finish": [
                        1289,
                        68
                    ],
                    "rawdesc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                    "start": [
                        1289,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setStencilTest(comparemode: \"always\"|\"equal\"|\"gequal\"|\"greater\"|\"lequal\"...(+3), comparevalue: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1289,
                    37
                ],
                "name": "setStencilTest",
                "rawdesc": "\nConfigures or disables stencil testing.\n\nWhen stencil testing is enabled, the geometry of everything that is drawn afterward will be clipped / stencilled out based on a comparison between the arguments of this function and the stencil value of each pixel that the geometry touches. The stencil values of pixels are affected via love.graphics.stencil.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setStencilTest)\n\n\n---\n\n```lua\n-- \n-- Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CompareMode)\n-- \ncomparemode:\n    | \"equal\" -- * stencil tests: the stencil value of the pixel must be equal to the supplied value.\n              -- * depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.\n    | \"notequal\" -- * stencil tests: the stencil value of the pixel must not be equal to the supplied value.\n                 -- * depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.\n    | \"less\" -- * stencil tests: the stencil value of the pixel must be less than the supplied value.\n             -- * depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.\n    | \"lequal\" -- * stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.\n    | \"gequal\" -- * stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.\n               -- * depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.\n    | \"greater\" -- * stencil tests: the stencil value of the pixel must be greater than the supplied value.\n                -- * depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.\n    | \"never\" -- Objects will never be drawn.\n    | \"always\" -- Objects will always be drawn. Effectively disables the depth or stencil test.\n```",
                "start": [
                    1289,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setStencilTest",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)\n\n@*param* `enable` — True to enable wireframe mode when drawing, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable wireframe mode when drawing, false to disable it.",
                            "finish": [
                                1298,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable wireframe mode when drawing, false to disable it.",
                            "start": [
                                1298,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)\n\n@*param* `enable` — True to enable wireframe mode when drawing, false to disable it.",
                    "finish": [
                        1298,
                        47
                    ],
                    "rawdesc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)",
                    "start": [
                        1298,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.setWireframe(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1298,
                    35
                ],
                "name": "setWireframe",
                "rawdesc": "\nSets whether wireframe lines will be used when drawing.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.setWireframe)",
                "start": [
                    1298,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.setWireframe",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)\n\n@*param* `kx` — The shear factor on the x-axis.\n\n@*param* `ky` — The shear factor on the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The shear factor on the x-axis.",
                            "finish": [
                                1308,
                                31
                            ],
                            "name": "kx",
                            "rawdesc": "The shear factor on the x-axis.",
                            "start": [
                                1308,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The shear factor on the y-axis.",
                            "finish": [
                                1308,
                                35
                            ],
                            "name": "ky",
                            "rawdesc": "The shear factor on the y-axis.",
                            "start": [
                                1308,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)\n\n@*param* `kx` — The shear factor on the x-axis.\n\n@*param* `ky` — The shear factor on the y-axis.",
                    "finish": [
                        1308,
                        40
                    ],
                    "rawdesc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)",
                    "start": [
                        1308,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.shear(kx: number, ky: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1308,
                    28
                ],
                "name": "shear",
                "rawdesc": "\nShears the coordinate system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.shear)",
                "start": [
                    1308,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.shear",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n@*param* `stencilfunction` — Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.\n\n@*param* `action` — How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.\n\n@*param* `value` — The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.\n\n@*param* `keepvalues` — True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.",
                            "finish": [
                                1324,
                                46
                            ],
                            "name": "stencilfunction",
                            "rawdesc": "Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.",
                            "start": [
                                1324,
                                31
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "desc": "How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.",
                            "finish": [
                                1324,
                                54
                            ],
                            "name": "action",
                            "rawdesc": "How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.",
                            "start": [
                                1324,
                                48
                            ],
                            "type": "local",
                            "view": "(\"decrement\"|\"decrementwrap\"|\"increment\"|\"incrementwrap\"|\"invert\"...(+1))?"
                        },
                        {
                            "desc": "The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.",
                            "finish": [
                                1324,
                                61
                            ],
                            "name": "value",
                            "rawdesc": "The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.",
                            "start": [
                                1324,
                                56
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.",
                            "finish": [
                                1324,
                                73
                            ],
                            "name": "keepvalues",
                            "rawdesc": "True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.",
                            "start": [
                                1324,
                                63
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n@*param* `stencilfunction` — Function which draws geometry. The stencil values of pixels, rather than the color of each pixel, will be affected by the geometry.\n\n@*param* `action` — How to modify any stencil values of pixels that are touched by what's drawn in the stencil function.\n\n@*param* `value` — The new stencil value to use for pixels if the 'replace' stencil action is used. Has no effect with other stencil actions. Must be between 0 and 255.\n\n@*param* `keepvalues` — True to preserve old stencil values of pixels, false to re-set every pixel's stencil value to 0 before executing the stencil function. love.graphics.clear will also re-set all stencil values.\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                    "finish": [
                        1324,
                        78
                    ],
                    "rawdesc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                    "start": [
                        1324,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.stencil(stencilfunction: function, action?: \"decrement\"|\"decrementwrap\"|\"increment\"|\"incrementwrap\"|\"invert\"...(+1), value?: number, keepvalues?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1324,
                    30
                ],
                "name": "stencil",
                "rawdesc": "\nDraws geometry as a stencil.\n\nThe geometry drawn by the supplied function sets invisible stencil values of pixels, instead of setting pixel colors. The stencil buffer (which contains those stencil values) can act like a mask / stencil - love.graphics.setStencilTest can be used afterward to determine how further rendering is affected by the stencil values in each pixel.\n\nStencil values are integers within the range of 255.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.stencil)\n\n\n```lua\n-- \n-- How a stencil function modifies the stencil values of pixels it touches.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/StencilAction)\n-- \naction:\n    | \"replace\" -- The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.\n    | \"increment\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.\n    | \"decrement\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.\n    | \"incrementwrap\" -- The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.\n    | \"decrementwrap\" -- The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.\n    | \"invert\" -- The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.\n```",
                "start": [
                    1324,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.stencil",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)\n\n@*param* `globalX` — The x component of the position in global coordinates.\n\n@*param* `globalY` — The y component of the position in global coordinates.\n\n@*return* `screenX` — The x component of the position with graphics transformations applied.\n\n@*return* `screenY` — The y component of the position with graphics transformations applied.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x component of the position in global coordinates.",
                            "finish": [
                                1338,
                                45
                            ],
                            "name": "globalX",
                            "rawdesc": "The x component of the position in global coordinates.",
                            "start": [
                                1338,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position in global coordinates.",
                            "finish": [
                                1338,
                                54
                            ],
                            "name": "globalY",
                            "rawdesc": "The y component of the position in global coordinates.",
                            "start": [
                                1338,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)\n\n@*param* `globalX` — The x component of the position in global coordinates.\n\n@*param* `globalY` — The y component of the position in global coordinates.\n\n@*return* `screenX` — The x component of the position with graphics transformations applied.\n\n@*return* `screenY` — The y component of the position with graphics transformations applied.",
                    "finish": [
                        1338,
                        59
                    ],
                    "rawdesc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)",
                    "returns": [
                        {
                            "desc": "The x component of the position with graphics transformations applied.",
                            "name": "screenX",
                            "rawdesc": "The x component of the position with graphics transformations applied.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y component of the position with graphics transformations applied.",
                            "name": "screenY",
                            "rawdesc": "The y component of the position with graphics transformations applied.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        1338,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.transformPoint(globalX: number, globalY: number)\n  -> screenX: number\n  2. screenY: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1338,
                    37
                ],
                "name": "transformPoint",
                "rawdesc": "\nConverts the given 2D position from global coordinates into screen-space.\n\nThis effectively applies the current graphics transformations to the given position. A similar Transform:transformPoint method exists for Transform objects.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.transformPoint)",
                "start": [
                    1338,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.transformPoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)\n\n@*param* `dx` — The translation relative to the x-axis.\n\n@*param* `dy` — The translation relative to the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The translation relative to the x-axis.",
                            "finish": [
                                1356,
                                35
                            ],
                            "name": "dx",
                            "rawdesc": "The translation relative to the x-axis.",
                            "start": [
                                1356,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The translation relative to the y-axis.",
                            "finish": [
                                1356,
                                39
                            ],
                            "name": "dy",
                            "rawdesc": "The translation relative to the y-axis.",
                            "start": [
                                1356,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)\n\n@*param* `dx` — The translation relative to the x-axis.\n\n@*param* `dy` — The translation relative to the y-axis.",
                    "finish": [
                        1356,
                        44
                    ],
                    "rawdesc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)",
                    "start": [
                        1356,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.translate(dx: number, dy: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1356,
                    32
                ],
                "name": "translate",
                "rawdesc": "\nTranslates the coordinate system in two dimensions.\n\nWhen this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.\n\nScale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.\n\nThis change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.\n\nTranslating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.translate)",
                "start": [
                    1356,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.translate",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)\n\n\n---\n\n@*param* `gles` — Validate code as GLSL ES shader.\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `status` — true if specified shader code doesn't contain any errors. false otherwise.\n\n@*return* `message` — Reason why shader code validation failed (or nil if validation succeded).",
                "extends": {
                    "args": [
                        {
                            "desc": "Validate code as GLSL ES shader.",
                            "finish": [
                                1369,
                                42
                            ],
                            "name": "gles",
                            "rawdesc": "Validate code as GLSL ES shader.",
                            "start": [
                                1369,
                                38
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "finish": [
                                1369,
                                48
                            ],
                            "name": "code",
                            "rawdesc": "The pixel shader or vertex shader code, or a filename pointing to a file with the code.",
                            "start": [
                                1369,
                                44
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)\n\n\n---\n\n@*param* `gles` — Validate code as GLSL ES shader.\n\n@*param* `code` — The pixel shader or vertex shader code, or a filename pointing to a file with the code.\n\n@*return* `status` — true if specified shader code doesn't contain any errors. false otherwise.\n\n@*return* `message` — Reason why shader code validation failed (or nil if validation succeded).",
                    "finish": [
                        1369,
                        53
                    ],
                    "rawdesc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)",
                    "returns": [
                        {
                            "desc": "true if specified shader code doesn't contain any errors. false otherwise.",
                            "name": "status",
                            "rawdesc": "true if specified shader code doesn't contain any errors. false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "Reason why shader code validation failed (or nil if validation succeded).",
                            "name": "message",
                            "rawdesc": "Reason why shader code validation failed (or nil if validation succeded).",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        1369,
                        0
                    ],
                    "type": "function",
                    "view": "function love.graphics.validateShader(gles: boolean, code: string)\n  -> status: boolean\n  2. message: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/graphics.lua",
                "finish": [
                    1369,
                    37
                ],
                "name": "validateShader",
                "rawdesc": "\nValidates shader code. Check if specified shader code does not contain any errors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.graphics.validateShader)",
                "start": [
                    1369,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.graphics.validateShader",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)\n\n@*return* `enabled` — Whether deprecation output is enabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)\n\n@*return* `enabled` — Whether deprecation output is enabled.",
                    "finish": [
                        30,
                        40
                    ],
                    "rawdesc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)",
                    "returns": [
                        {
                            "desc": "Whether deprecation output is enabled.",
                            "name": "enabled",
                            "rawdesc": "Whether deprecation output is enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        30,
                        0
                    ],
                    "type": "function",
                    "view": "function love.hasDeprecationOutput()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    30,
                    34
                ],
                "name": "hasDeprecationOutput",
                "rawdesc": "\nGets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.hasDeprecationOutput)",
                "start": [
                    30,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.hasDeprecationOutput",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.image",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)\n\n\n---\n\n@*param* `filename` — The filename of the potentially compressed image file.\n\n@*return* `compressed` — Whether the file can be loaded as CompressedImageData or not.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename of the potentially compressed image file.",
                            "finish": [
                                20,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The filename of the potentially compressed image file.",
                            "start": [
                                20,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)\n\n\n---\n\n@*param* `filename` — The filename of the potentially compressed image file.\n\n@*return* `compressed` — Whether the file can be loaded as CompressedImageData or not.",
                    "finish": [
                        20,
                        46
                    ],
                    "rawdesc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)",
                    "returns": [
                        {
                            "desc": "Whether the file can be loaded as CompressedImageData or not.",
                            "name": "compressed",
                            "rawdesc": "Whether the file can be loaded as CompressedImageData or not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function love.image.isCompressed(filename: string)\n  -> compressed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    20,
                    32
                ],
                "name": "isCompressed",
                "rawdesc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)\n\n\n---\n\n@*param* `filename` — The filename of the compressed image file.\n\n@*return* `compressedImageData` — The new CompressedImageData object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename of the compressed image file.",
                            "finish": [
                                31,
                                46
                            ],
                            "name": "filename",
                            "rawdesc": "The filename of the compressed image file.",
                            "start": [
                                31,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)\n\n\n---\n\n@*param* `filename` — The filename of the compressed image file.\n\n@*return* `compressedImageData` — The new CompressedImageData object.",
                    "finish": [
                        31,
                        51
                    ],
                    "rawdesc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)",
                    "returns": [
                        {
                            "desc": "The new CompressedImageData object.",
                            "name": "compressedImageData",
                            "rawdesc": "The new CompressedImageData object.",
                            "type": "function.return",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function love.image.newCompressedData(filename: string)\n  -> compressedImageData: love.CompressedImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    31,
                    37
                ],
                "name": "newCompressedData",
                "rawdesc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)\n\n\n---\n\n@*param* `width` — The width of the ImageData.\n\n@*param* `height` — The height of the ImageData.\n\n@*return* `imageData` — The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                "extends": {
                    "args": [
                        {
                            "desc": "The width of the ImageData.",
                            "finish": [
                                46,
                                38
                            ],
                            "name": "width",
                            "rawdesc": "The width of the ImageData.",
                            "start": [
                                46,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the ImageData.",
                            "finish": [
                                46,
                                46
                            ],
                            "name": "height",
                            "rawdesc": "The height of the ImageData.",
                            "start": [
                                46,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)\n\n\n---\n\n@*param* `width` — The width of the ImageData.\n\n@*param* `height` — The height of the ImageData.\n\n@*return* `imageData` — The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                    "finish": [
                        46,
                        51
                    ],
                    "rawdesc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)",
                    "returns": [
                        {
                            "desc": "The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                            "name": "imageData",
                            "rawdesc": "The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                            "type": "function.return",
                            "view": "love.ImageData"
                        }
                    ],
                    "start": [
                        46,
                        0
                    ],
                    "type": "function",
                    "view": "function love.image.newImageData(width: number, height: number)\n  -> imageData: love.ImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    46,
                    32
                ],
                "name": "newImageData",
                "rawdesc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)",
                "start": [
                    46,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.image",
        "type": "type",
        "view": "love.image"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "extends": {
                    "desc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.image"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "image",
                "rawdesc": "\nProvides an interface to decode encoded image data.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.image",
                "visible": "public"
            }
        ],
        "name": "love.image",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)\n\n\n---\n\n@*param* `filename` — The filename of the potentially compressed image file.\n\n@*return* `compressed` — Whether the file can be loaded as CompressedImageData or not.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename of the potentially compressed image file.",
                            "finish": [
                                20,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The filename of the potentially compressed image file.",
                            "start": [
                                20,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)\n\n\n---\n\n@*param* `filename` — The filename of the potentially compressed image file.\n\n@*return* `compressed` — Whether the file can be loaded as CompressedImageData or not.",
                    "finish": [
                        20,
                        46
                    ],
                    "rawdesc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)",
                    "returns": [
                        {
                            "desc": "Whether the file can be loaded as CompressedImageData or not.",
                            "name": "compressed",
                            "rawdesc": "Whether the file can be loaded as CompressedImageData or not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function love.image.isCompressed(filename: string)\n  -> compressed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    20,
                    32
                ],
                "name": "isCompressed",
                "rawdesc": "\nDetermines whether a file can be loaded as CompressedImageData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.isCompressed)",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.image.isCompressed",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)\n\n\n---\n\n@*param* `filename` — The filename of the compressed image file.\n\n@*return* `compressedImageData` — The new CompressedImageData object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename of the compressed image file.",
                            "finish": [
                                31,
                                46
                            ],
                            "name": "filename",
                            "rawdesc": "The filename of the compressed image file.",
                            "start": [
                                31,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)\n\n\n---\n\n@*param* `filename` — The filename of the compressed image file.\n\n@*return* `compressedImageData` — The new CompressedImageData object.",
                    "finish": [
                        31,
                        51
                    ],
                    "rawdesc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)",
                    "returns": [
                        {
                            "desc": "The new CompressedImageData object.",
                            "name": "compressedImageData",
                            "rawdesc": "The new CompressedImageData object.",
                            "type": "function.return",
                            "view": "love.CompressedImageData"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function love.image.newCompressedData(filename: string)\n  -> compressedImageData: love.CompressedImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    31,
                    37
                ],
                "name": "newCompressedData",
                "rawdesc": "\nCreate a new CompressedImageData object from a compressed image file. LÖVE supports several compressed texture formats, enumerated in the CompressedImageFormat page.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newCompressedData)",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.image.newCompressedData",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)\n\n\n---\n\n@*param* `width` — The width of the ImageData.\n\n@*param* `height` — The height of the ImageData.\n\n@*return* `imageData` — The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                "extends": {
                    "args": [
                        {
                            "desc": "The width of the ImageData.",
                            "finish": [
                                46,
                                38
                            ],
                            "name": "width",
                            "rawdesc": "The width of the ImageData.",
                            "start": [
                                46,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the ImageData.",
                            "finish": [
                                46,
                                46
                            ],
                            "name": "height",
                            "rawdesc": "The height of the ImageData.",
                            "start": [
                                46,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)\n\n\n---\n\n@*param* `width` — The width of the ImageData.\n\n@*param* `height` — The height of the ImageData.\n\n@*return* `imageData` — The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                    "finish": [
                        46,
                        51
                    ],
                    "rawdesc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)",
                    "returns": [
                        {
                            "desc": "The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                            "name": "imageData",
                            "rawdesc": "The new blank ImageData object. Each pixel's color values, (including the alpha values!) will be set to zero.",
                            "type": "function.return",
                            "view": "love.ImageData"
                        }
                    ],
                    "start": [
                        46,
                        0
                    ],
                    "type": "function",
                    "view": "function love.image.newImageData(width: number, height: number)\n  -> imageData: love.ImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/image.lua",
                "finish": [
                    46,
                    32
                ],
                "name": "newImageData",
                "rawdesc": "\nCreates a new ImageData object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.image.newImageData)",
                "start": [
                    46,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.image.newImageData",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)\n\n\n---\n\n@*param* `version` — The version to check (for example '11.3' or '0.10.2').\n\n@*return* `compatible` — Whether the given version is compatible with the current running version of LÖVE.",
                "extends": {
                    "args": [
                        {
                            "desc": "The version to check (for example '11.3' or '0.10.2').",
                            "finish": [
                                41,
                                41
                            ],
                            "name": "version",
                            "rawdesc": "The version to check (for example '11.3' or '0.10.2').",
                            "start": [
                                41,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)\n\n\n---\n\n@*param* `version` — The version to check (for example '11.3' or '0.10.2').\n\n@*return* `compatible` — Whether the given version is compatible with the current running version of LÖVE.",
                    "finish": [
                        41,
                        46
                    ],
                    "rawdesc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)",
                    "returns": [
                        {
                            "desc": "Whether the given version is compatible with the current running version of LÖVE.",
                            "name": "compatible",
                            "rawdesc": "Whether the given version is compatible with the current running version of LÖVE.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function love.isVersionCompatible(version: string)\n  -> compatible: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    41,
                    33
                ],
                "name": "isVersionCompatible",
                "rawdesc": "\nGets whether the given version is compatible with the current running version of LÖVE.\n\n\n[Open in Browser](https://love2d.org/wiki/love.isVersionCompatible)",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.isVersionCompatible",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    8,
                    23
                ],
                "rawdesc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.joystick",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)\n\n@*param* `guid` — The GUID value to get the mapping string for.\n\n@*return* `mappingstring` — A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                "extends": {
                    "args": [
                        {
                            "desc": "The GUID value to get the mapping string for.",
                            "finish": [
                                21,
                                51
                            ],
                            "name": "guid",
                            "rawdesc": "The GUID value to get the mapping string for.",
                            "start": [
                                21,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)\n\n@*param* `guid` — The GUID value to get the mapping string for.\n\n@*return* `mappingstring` — A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                    "finish": [
                        21,
                        56
                    ],
                    "rawdesc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)",
                    "returns": [
                        {
                            "desc": "A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                            "name": "mappingstring",
                            "rawdesc": "A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.getGamepadMappingString(guid: string)\n  -> mappingstring: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    21,
                    46
                ],
                "name": "getGamepadMappingString",
                "rawdesc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)",
                "start": [
                    21,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)\n\n@*return* `joystickcount` — The number of connected joysticks.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)\n\n@*return* `joystickcount` — The number of connected joysticks.",
                    "finish": [
                        30,
                        45
                    ],
                    "rawdesc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)",
                    "returns": [
                        {
                            "desc": "The number of connected joysticks.",
                            "name": "joystickcount",
                            "rawdesc": "The number of connected joysticks.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        30,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.getJoystickCount()\n  -> joystickcount: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    30,
                    39
                ],
                "name": "getJoystickCount",
                "rawdesc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)",
                "start": [
                    30,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)\n\n@*return* `joysticks` — The list of currently connected Joysticks.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)\n\n@*return* `joysticks` — The list of currently connected Joysticks.",
                    "finish": [
                        39,
                        41
                    ],
                    "rawdesc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)",
                    "returns": [
                        {
                            "desc": "The list of currently connected Joysticks.",
                            "name": "joysticks",
                            "rawdesc": "The list of currently connected Joysticks.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        39,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.getJoysticks()\n  -> joysticks: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    39,
                    35
                ],
                "name": "getJoysticks",
                "rawdesc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)",
                "start": [
                    39,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to load the mappings string from.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename to load the mappings string from.",
                            "finish": [
                                51,
                                51
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to load the mappings string from.",
                            "start": [
                                51,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to load the mappings string from.",
                    "finish": [
                        51,
                        56
                    ],
                    "rawdesc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)",
                    "start": [
                        51,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.loadGamepadMappings(filename: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    51,
                    42
                ],
                "name": "loadGamepadMappings",
                "rawdesc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)",
                "start": [
                    51,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to save the mappings string to.\n\n@*return* `mappings` — The mappings string that was written to the file.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename to save the mappings string to.",
                            "finish": [
                                64,
                                51
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to save the mappings string to.",
                            "start": [
                                64,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to save the mappings string to.\n\n@*return* `mappings` — The mappings string that was written to the file.",
                    "finish": [
                        64,
                        56
                    ],
                    "rawdesc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)",
                    "returns": [
                        {
                            "desc": "The mappings string that was written to the file.",
                            "name": "mappings",
                            "rawdesc": "The mappings string that was written to the file.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        64,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.saveGamepadMappings(filename: string)\n  -> mappings: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    64,
                    42
                ],
                "name": "saveGamepadMappings",
                "rawdesc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)",
                "start": [
                    64,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n@*param* `guid` — The OS-dependent GUID for the type of Joystick the binding will affect.\n\n@*param* `button` — The virtual gamepad button to bind.\n\n@*param* `inputtype` — The type of input to bind the virtual gamepad button to.\n\n@*param* `inputindex` — The index of the axis, button, or hat to bind the virtual gamepad button to.\n\n@*param* `hatdir` — The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.\n\n@*return* `success` — Whether the virtual gamepad button was successfully bound.\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The OS-dependent GUID for the type of Joystick the binding will affect.",
                            "finish": [
                                83,
                                45
                            ],
                            "name": "guid",
                            "rawdesc": "The OS-dependent GUID for the type of Joystick the binding will affect.",
                            "start": [
                                83,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The virtual gamepad button to bind.",
                            "finish": [
                                83,
                                53
                            ],
                            "name": "button",
                            "rawdesc": "The virtual gamepad button to bind.",
                            "start": [
                                83,
                                47
                            ],
                            "type": "local",
                            "view": "\"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10)"
                        },
                        {
                            "desc": "The type of input to bind the virtual gamepad button to.",
                            "finish": [
                                83,
                                64
                            ],
                            "name": "inputtype",
                            "rawdesc": "The type of input to bind the virtual gamepad button to.",
                            "start": [
                                83,
                                55
                            ],
                            "type": "local",
                            "view": "\"axis\"|\"button\"|\"hat\""
                        },
                        {
                            "desc": "The index of the axis, button, or hat to bind the virtual gamepad button to.",
                            "finish": [
                                83,
                                76
                            ],
                            "name": "inputindex",
                            "rawdesc": "The index of the axis, button, or hat to bind the virtual gamepad button to.",
                            "start": [
                                83,
                                66
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.",
                            "finish": [
                                83,
                                84
                            ],
                            "name": "hatdir",
                            "rawdesc": "The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.",
                            "start": [
                                83,
                                78
                            ],
                            "type": "local",
                            "view": "(\"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4))?"
                        }
                    ],
                    "desc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n@*param* `guid` — The OS-dependent GUID for the type of Joystick the binding will affect.\n\n@*param* `button` — The virtual gamepad button to bind.\n\n@*param* `inputtype` — The type of input to bind the virtual gamepad button to.\n\n@*param* `inputindex` — The index of the axis, button, or hat to bind the virtual gamepad button to.\n\n@*param* `hatdir` — The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.\n\n@*return* `success` — Whether the virtual gamepad button was successfully bound.\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "finish": [
                        83,
                        89
                    ],
                    "rawdesc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "returns": [
                        {
                            "desc": "Whether the virtual gamepad button was successfully bound.",
                            "name": "success",
                            "rawdesc": "Whether the virtual gamepad button was successfully bound.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.setGamepadMapping(guid: string, button: \"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10), inputtype: \"axis\"|\"button\"|\"hat\", inputindex: number, hatdir?: \"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4))\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    83,
                    40
                ],
                "name": "setGamepadMapping",
                "rawdesc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick",
        "type": "type",
        "view": "love.joystick"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                    "finish": [
                        9,
                        18
                    ],
                    "rawdesc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                    "start": [
                        9,
                        16
                    ],
                    "type": "table",
                    "view": "love.joystick"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    9,
                    13
                ],
                "name": "joystick",
                "rawdesc": "\nProvides an interface to the user's joystick.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.joystick",
                "visible": "public"
            }
        ],
        "name": "love.joystick",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)\n\n@*param* `guid` — The GUID value to get the mapping string for.\n\n@*return* `mappingstring` — A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                "extends": {
                    "args": [
                        {
                            "desc": "The GUID value to get the mapping string for.",
                            "finish": [
                                21,
                                51
                            ],
                            "name": "guid",
                            "rawdesc": "The GUID value to get the mapping string for.",
                            "start": [
                                21,
                                47
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)\n\n@*param* `guid` — The GUID value to get the mapping string for.\n\n@*return* `mappingstring` — A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                    "finish": [
                        21,
                        56
                    ],
                    "rawdesc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)",
                    "returns": [
                        {
                            "desc": "A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                            "name": "mappingstring",
                            "rawdesc": "A string containing the Joystick's gamepad mappings, or nil if the GUID is not recognized as a gamepad.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.getGamepadMappingString(guid: string)\n  -> mappingstring: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    21,
                    46
                ],
                "name": "getGamepadMappingString",
                "rawdesc": "\nGets the full gamepad mapping string of the Joysticks which have the given GUID, or nil if the GUID isn't recognized as a gamepad.\n\nThe mapping string contains binding information used to map the Joystick's buttons an axes to the standard gamepad layout, and can be used later with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getGamepadMappingString)",
                "start": [
                    21,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick.getGamepadMappingString",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)\n\n@*return* `joystickcount` — The number of connected joysticks.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)\n\n@*return* `joystickcount` — The number of connected joysticks.",
                    "finish": [
                        30,
                        45
                    ],
                    "rawdesc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)",
                    "returns": [
                        {
                            "desc": "The number of connected joysticks.",
                            "name": "joystickcount",
                            "rawdesc": "The number of connected joysticks.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        30,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.getJoystickCount()\n  -> joystickcount: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    30,
                    39
                ],
                "name": "getJoystickCount",
                "rawdesc": "\nGets the number of connected joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoystickCount)",
                "start": [
                    30,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick.getJoystickCount",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)\n\n@*return* `joysticks` — The list of currently connected Joysticks.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)\n\n@*return* `joysticks` — The list of currently connected Joysticks.",
                    "finish": [
                        39,
                        41
                    ],
                    "rawdesc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)",
                    "returns": [
                        {
                            "desc": "The list of currently connected Joysticks.",
                            "name": "joysticks",
                            "rawdesc": "The list of currently connected Joysticks.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        39,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.getJoysticks()\n  -> joysticks: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    39,
                    35
                ],
                "name": "getJoysticks",
                "rawdesc": "\nGets a list of connected Joysticks.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.getJoysticks)",
                "start": [
                    39,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick.getJoysticks",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to load the mappings string from.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename to load the mappings string from.",
                            "finish": [
                                51,
                                51
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to load the mappings string from.",
                            "start": [
                                51,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to load the mappings string from.",
                    "finish": [
                        51,
                        56
                    ],
                    "rawdesc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)",
                    "start": [
                        51,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.loadGamepadMappings(filename: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    51,
                    42
                ],
                "name": "loadGamepadMappings",
                "rawdesc": "\nLoads a gamepad mappings string or file created with love.joystick.saveGamepadMappings.\n\nIt also recognizes any SDL gamecontroller mapping string, such as those created with Steam's Big Picture controller configure interface, or this nice database. If a new mapping is loaded for an already known controller GUID, the later version will overwrite the one currently loaded.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.loadGamepadMappings)",
                "start": [
                    51,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick.loadGamepadMappings",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to save the mappings string to.\n\n@*return* `mappings` — The mappings string that was written to the file.",
                "extends": {
                    "args": [
                        {
                            "desc": "The filename to save the mappings string to.",
                            "finish": [
                                64,
                                51
                            ],
                            "name": "filename",
                            "rawdesc": "The filename to save the mappings string to.",
                            "start": [
                                64,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)\n\n\n---\n\n@*param* `filename` — The filename to save the mappings string to.\n\n@*return* `mappings` — The mappings string that was written to the file.",
                    "finish": [
                        64,
                        56
                    ],
                    "rawdesc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)",
                    "returns": [
                        {
                            "desc": "The mappings string that was written to the file.",
                            "name": "mappings",
                            "rawdesc": "The mappings string that was written to the file.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        64,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.saveGamepadMappings(filename: string)\n  -> mappings: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    64,
                    42
                ],
                "name": "saveGamepadMappings",
                "rawdesc": "\nSaves the virtual gamepad mappings of all recognized as gamepads and have either been recently used or their gamepad bindings have been modified.\n\nThe mappings are stored as a string for use with love.joystick.loadGamepadMappings.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.saveGamepadMappings)",
                "start": [
                    64,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick.saveGamepadMappings",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n@*param* `guid` — The OS-dependent GUID for the type of Joystick the binding will affect.\n\n@*param* `button` — The virtual gamepad button to bind.\n\n@*param* `inputtype` — The type of input to bind the virtual gamepad button to.\n\n@*param* `inputindex` — The index of the axis, button, or hat to bind the virtual gamepad button to.\n\n@*param* `hatdir` — The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.\n\n@*return* `success` — Whether the virtual gamepad button was successfully bound.\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The OS-dependent GUID for the type of Joystick the binding will affect.",
                            "finish": [
                                83,
                                45
                            ],
                            "name": "guid",
                            "rawdesc": "The OS-dependent GUID for the type of Joystick the binding will affect.",
                            "start": [
                                83,
                                41
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The virtual gamepad button to bind.",
                            "finish": [
                                83,
                                53
                            ],
                            "name": "button",
                            "rawdesc": "The virtual gamepad button to bind.",
                            "start": [
                                83,
                                47
                            ],
                            "type": "local",
                            "view": "\"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10)"
                        },
                        {
                            "desc": "The type of input to bind the virtual gamepad button to.",
                            "finish": [
                                83,
                                64
                            ],
                            "name": "inputtype",
                            "rawdesc": "The type of input to bind the virtual gamepad button to.",
                            "start": [
                                83,
                                55
                            ],
                            "type": "local",
                            "view": "\"axis\"|\"button\"|\"hat\""
                        },
                        {
                            "desc": "The index of the axis, button, or hat to bind the virtual gamepad button to.",
                            "finish": [
                                83,
                                76
                            ],
                            "name": "inputindex",
                            "rawdesc": "The index of the axis, button, or hat to bind the virtual gamepad button to.",
                            "start": [
                                83,
                                66
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.",
                            "finish": [
                                83,
                                84
                            ],
                            "name": "hatdir",
                            "rawdesc": "The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.",
                            "start": [
                                83,
                                78
                            ],
                            "type": "local",
                            "view": "(\"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4))?"
                        }
                    ],
                    "desc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n@*param* `guid` — The OS-dependent GUID for the type of Joystick the binding will affect.\n\n@*param* `button` — The virtual gamepad button to bind.\n\n@*param* `inputtype` — The type of input to bind the virtual gamepad button to.\n\n@*param* `inputindex` — The index of the axis, button, or hat to bind the virtual gamepad button to.\n\n@*param* `hatdir` — The direction of the hat, if the virtual gamepad button will be bound to a hat. nil otherwise.\n\n@*return* `success` — Whether the virtual gamepad button was successfully bound.\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "finish": [
                        83,
                        89
                    ],
                    "rawdesc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                    "returns": [
                        {
                            "desc": "Whether the virtual gamepad button was successfully bound.",
                            "name": "success",
                            "rawdesc": "Whether the virtual gamepad button was successfully bound.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function love.joystick.setGamepadMapping(guid: string, button: \"a\"|\"b\"|\"back\"|\"dpdown\"|\"dpleft\"...(+10), inputtype: \"axis\"|\"button\"|\"hat\", inputindex: number, hatdir?: \"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4))\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/joystick.lua",
                "finish": [
                    83,
                    40
                ],
                "name": "setGamepadMapping",
                "rawdesc": "\nBinds a virtual gamepad input to a button, axis or hat for all Joysticks of a certain type. For example, if this function is used with a GUID returned by a Dualshock 3 controller in OS X, the binding will affect Joystick:getGamepadAxis and Joystick:isGamepadDown for ''all'' Dualshock 3 controllers used with the game when run in OS X.\n\nLÖVE includes built-in gamepad bindings for many common controllers. This function lets you change the bindings or add new ones for types of Joysticks which aren't recognized as gamepads by default.\n\nThe virtual gamepad buttons and axes are designed around the Xbox 360 controller layout.\n\n\n[Open in Browser](https://love2d.org/wiki/love.joystick.setGamepadMapping)\n\n\n---\n\n```lua\n-- \n-- Virtual gamepad buttons.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/GamepadButton)\n-- \nbutton:\n    | \"a\" -- Bottom face button (A).\n    | \"b\" -- Right face button (B).\n    | \"x\" -- Left face button (X).\n    | \"y\" -- Top face button (Y).\n    | \"back\" -- Back button.\n    | \"guide\" -- Guide button.\n    | \"start\" -- Start button.\n    | \"leftstick\" -- Left stick click button.\n    | \"rightstick\" -- Right stick click button.\n    | \"leftshoulder\" -- Left bumper.\n    | \"rightshoulder\" -- Right bumper.\n    | \"dpup\" -- D-pad up.\n    | \"dpdown\" -- D-pad down.\n    | \"dpleft\" -- D-pad left.\n    | \"dpright\" -- D-pad right.\n\n-- \n-- Types of Joystick inputs.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickInputType)\n-- \ninputtype:\n    | \"axis\" -- Analog axis.\n    | \"button\" -- Button.\n    | \"hat\" -- 8-direction hat value.\n\n-- \n-- Joystick hat positions.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/JoystickHat)\n-- \nhatdir:\n    | \"c\" -- Centered\n    | \"d\" -- Down\n    | \"l\" -- Left\n    | \"ld\" -- Left+Down\n    | \"lu\" -- Left+Up\n    | \"r\" -- Right\n    | \"rd\" -- Right+Down\n    | \"ru\" -- Right+Up\n    | \"u\" -- Up\n```",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.joystick.setGamepadMapping",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a Joystick is connected.\n",
                "finish": [
                    202,
                    57
                ],
                "rawdesc": "\nCalled when a Joystick is connected.\n",
                "start": [
                    202,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick)"
            }
        ],
        "fields": [],
        "name": "love.joystickadded",
        "type": "type",
        "view": "love.joystickadded"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a joystick axis moves.\n",
                "finish": [
                    207,
                    85
                ],
                "rawdesc": "\nCalled when a joystick axis moves.\n",
                "start": [
                    207,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, axis: number, value: number)"
            }
        ],
        "fields": [],
        "name": "love.joystickaxis",
        "type": "type",
        "view": "love.joystickaxis"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a joystick hat direction changes.\n",
                "finish": [
                    212,
                    97
                ],
                "rawdesc": "\nCalled when a joystick hat direction changes.\n",
                "start": [
                    212,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, hat: number, direction: \"c\"|\"d\"|\"l\"|\"ld\"|\"lu\"...(+4))"
            }
        ],
        "fields": [],
        "name": "love.joystickhat",
        "type": "type",
        "view": "love.joystickhat"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a joystick button is pressed.\n",
                "finish": [
                    217,
                    75
                ],
                "rawdesc": "\nCalled when a joystick button is pressed.\n",
                "start": [
                    217,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, button: number)"
            }
        ],
        "fields": [],
        "name": "love.joystickpressed",
        "type": "type",
        "view": "love.joystickpressed"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a joystick button is released.\n",
                "finish": [
                    222,
                    76
                ],
                "rawdesc": "\nCalled when a joystick button is released.\n",
                "start": [
                    222,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick, button: number)"
            }
        ],
        "fields": [],
        "name": "love.joystickreleased",
        "type": "type",
        "view": "love.joystickreleased"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when a Joystick is disconnected.\n",
                "finish": [
                    227,
                    59
                ],
                "rawdesc": "\nCalled when a Joystick is disconnected.\n",
                "start": [
                    227,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(joystick: love.Joystick)"
            }
        ],
        "fields": [],
        "name": "love.joystickremoved",
        "type": "type",
        "view": "love.joystickremoved"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    8,
                    23
                ],
                "rawdesc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.keyboard",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n@*param* `scancode` — The scancode to get the key from.\n\n@*return* `key` — The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The scancode to get the key from.",
                            "finish": [
                                23,
                                50
                            ],
                            "name": "scancode",
                            "rawdesc": "The scancode to get the key from.",
                            "start": [
                                23,
                                42
                            ],
                            "type": "local",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        }
                    ],
                    "desc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n@*param* `scancode` — The scancode to get the key from.\n\n@*return* `key` — The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "finish": [
                        23,
                        55
                    ],
                    "rawdesc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "returns": [
                        {
                            "desc": "The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.",
                            "name": "key",
                            "rawdesc": "The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.",
                            "type": "function.return",
                            "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                        }
                    ],
                    "start": [
                        23,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.getKeyFromScancode(scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189))\n  -> key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    23,
                    41
                ],
                "name": "getKeyFromScancode",
                "rawdesc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "start": [
                    23,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n@*param* `key` — The key to get the scancode from.\n\n@*return* `scancode` — The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The key to get the scancode from.",
                            "finish": [
                                37,
                                45
                            ],
                            "name": "key",
                            "rawdesc": "The key to get the scancode from.",
                            "start": [
                                37,
                                42
                            ],
                            "type": "local",
                            "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                        }
                    ],
                    "desc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n@*param* `key` — The key to get the scancode from.\n\n@*return* `scancode` — The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "finish": [
                        37,
                        50
                    ],
                    "rawdesc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "returns": [
                        {
                            "desc": "The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.",
                            "name": "scancode",
                            "rawdesc": "The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.",
                            "type": "function.return",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        }
                    ],
                    "start": [
                        37,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.getScancodeFromKey(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139))\n  -> scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    37,
                    41
                ],
                "name": "getScancodeFromKey",
                "rawdesc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "start": [
                    37,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)\n\n@*return* `enabled` — Whether key repeat is enabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)\n\n@*return* `enabled` — Whether key repeat is enabled.",
                    "finish": [
                        46,
                        41
                    ],
                    "rawdesc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)",
                    "returns": [
                        {
                            "desc": "Whether key repeat is enabled.",
                            "name": "enabled",
                            "rawdesc": "Whether key repeat is enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        46,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.hasKeyRepeat()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    46,
                    35
                ],
                "name": "hasKeyRepeat",
                "rawdesc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)",
                "start": [
                    46,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)\n\n@*return* `supported` — Whether screen keyboard is supported.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)\n\n@*return* `supported` — Whether screen keyboard is supported.",
                    "finish": [
                        55,
                        46
                    ],
                    "rawdesc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)",
                    "returns": [
                        {
                            "desc": "Whether screen keyboard is supported.",
                            "name": "supported",
                            "rawdesc": "Whether screen keyboard is supported.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.hasScreenKeyboard()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    55,
                    40
                ],
                "name": "hasScreenKeyboard",
                "rawdesc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)\n\n@*return* `enabled` — Whether text input events are enabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)\n\n@*return* `enabled` — Whether text input events are enabled.",
                    "finish": [
                        64,
                        41
                    ],
                    "rawdesc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)",
                    "returns": [
                        {
                            "desc": "Whether text input events are enabled.",
                            "name": "enabled",
                            "rawdesc": "Whether text input events are enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        64,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.hasTextInput()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    64,
                    35
                ],
                "name": "hasTextInput",
                "rawdesc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)",
                "start": [
                    64,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n@*param* `key` — The key to check.\n\n@*return* `down` — True if the key is down, false if not.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The key to check.",
                            "finish": [
                                75,
                                33
                            ],
                            "name": "key",
                            "rawdesc": "The key to check.",
                            "start": [
                                75,
                                30
                            ],
                            "type": "local",
                            "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                        }
                    ],
                    "desc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n@*param* `key` — The key to check.\n\n@*return* `down` — True if the key is down, false if not.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "finish": [
                        75,
                        38
                    ],
                    "rawdesc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "returns": [
                        {
                            "desc": "True if the key is down, false if not.",
                            "name": "down",
                            "rawdesc": "True if the key is down, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.isDown(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139))\n  -> down: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    75,
                    29
                ],
                "name": "isDown",
                "rawdesc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "start": [
                    75,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n@*param* `scancode` — A Scancode to check.\n\n@*return* `down` — True if any supplied Scancode is down, false if not.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "A Scancode to check.",
                            "finish": [
                                88,
                                46
                            ],
                            "name": "scancode",
                            "rawdesc": "A Scancode to check.",
                            "start": [
                                88,
                                38
                            ],
                            "type": "local",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        },
                        {
                            "desc": "\nKeyboard scancodes.\n\nScancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nUsing scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n\nOne could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n\n\n[Open in Browser](https://love2d.org/wiki/Scancode)\n",
                            "finish": [
                                88,
                                51
                            ],
                            "rawdesc": "\nKeyboard scancodes.\n\nScancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nUsing scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n\nOne could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n\n\n[Open in Browser](https://love2d.org/wiki/Scancode)\n",
                            "start": [
                                88,
                                48
                            ],
                            "type": "...",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        }
                    ],
                    "desc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n@*param* `scancode` — A Scancode to check.\n\n@*return* `down` — True if any supplied Scancode is down, false if not.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "finish": [
                        88,
                        56
                    ],
                    "rawdesc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "returns": [
                        {
                            "desc": "True if any supplied Scancode is down, false if not.",
                            "name": "down",
                            "rawdesc": "True if any supplied Scancode is down, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        88,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.isScancodeDown(scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189), ...\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189))\n  -> down: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    88,
                    37
                ],
                "name": "isScancodeDown",
                "rawdesc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "start": [
                    88,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)\n\n@*param* `enable` — Whether repeat keypress events should be enabled when a key is held down.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether repeat keypress events should be enabled when a key is held down.",
                            "finish": [
                                97,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "Whether repeat keypress events should be enabled when a key is held down.",
                            "start": [
                                97,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)\n\n@*param* `enable` — Whether repeat keypress events should be enabled when a key is held down.",
                    "finish": [
                        97,
                        47
                    ],
                    "rawdesc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)",
                    "start": [
                        97,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.setKeyRepeat(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    97,
                    35
                ],
                "name": "setKeyRepeat",
                "rawdesc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)",
                "start": [
                    97,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)\n\n\n---\n\n@*param* `enable` — Whether text input events should be enabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether text input events should be enabled.",
                            "finish": [
                                109,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "Whether text input events should be enabled.",
                            "start": [
                                109,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)\n\n\n---\n\n@*param* `enable` — Whether text input events should be enabled.",
                    "finish": [
                        109,
                        47
                    ],
                    "rawdesc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)",
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.setTextInput(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    109,
                    35
                ],
                "name": "setTextInput",
                "rawdesc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard",
        "type": "type",
        "view": "love.keyboard"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                    "finish": [
                        9,
                        18
                    ],
                    "rawdesc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                    "start": [
                        9,
                        16
                    ],
                    "type": "table",
                    "view": "love.keyboard"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    9,
                    13
                ],
                "name": "keyboard",
                "rawdesc": "\nProvides an interface to the user's keyboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.keyboard",
                "visible": "public"
            }
        ],
        "name": "love.keyboard",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n@*param* `scancode` — The scancode to get the key from.\n\n@*return* `key` — The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The scancode to get the key from.",
                            "finish": [
                                23,
                                50
                            ],
                            "name": "scancode",
                            "rawdesc": "The scancode to get the key from.",
                            "start": [
                                23,
                                42
                            ],
                            "type": "local",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        }
                    ],
                    "desc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n@*param* `scancode` — The scancode to get the key from.\n\n@*return* `key` — The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "finish": [
                        23,
                        55
                    ],
                    "rawdesc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "returns": [
                        {
                            "desc": "The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.",
                            "name": "key",
                            "rawdesc": "The key corresponding to the given scancode, or 'unknown' if the scancode doesn't map to a KeyConstant on the current system.",
                            "type": "function.return",
                            "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                        }
                    ],
                    "start": [
                        23,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.getKeyFromScancode(scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189))\n  -> key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    23,
                    41
                ],
                "name": "getKeyFromScancode",
                "rawdesc": "\nGets the key corresponding to the given hardware scancode.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getKeyFromScancode)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "start": [
                    23,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.getKeyFromScancode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n@*param* `key` — The key to get the scancode from.\n\n@*return* `scancode` — The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The key to get the scancode from.",
                            "finish": [
                                37,
                                45
                            ],
                            "name": "key",
                            "rawdesc": "The key to get the scancode from.",
                            "start": [
                                37,
                                42
                            ],
                            "type": "local",
                            "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                        }
                    ],
                    "desc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n@*param* `key` — The key to get the scancode from.\n\n@*return* `scancode` — The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "finish": [
                        37,
                        50
                    ],
                    "rawdesc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "returns": [
                        {
                            "desc": "The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.",
                            "name": "scancode",
                            "rawdesc": "The scancode corresponding to the given key, or 'unknown' if the given key has no known physical representation on the current system.",
                            "type": "function.return",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        }
                    ],
                    "start": [
                        37,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.getScancodeFromKey(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139))\n  -> scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    37,
                    41
                ],
                "name": "getScancodeFromKey",
                "rawdesc": "\nGets the hardware scancode corresponding to the given key.\n\nUnlike key constants, Scancodes are keyboard layout-independent. For example the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nScancodes are useful for creating default controls that have the same physical locations on on all systems.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.getScancodeFromKey)\n\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "start": [
                    37,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.getScancodeFromKey",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)\n\n@*return* `enabled` — Whether key repeat is enabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)\n\n@*return* `enabled` — Whether key repeat is enabled.",
                    "finish": [
                        46,
                        41
                    ],
                    "rawdesc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)",
                    "returns": [
                        {
                            "desc": "Whether key repeat is enabled.",
                            "name": "enabled",
                            "rawdesc": "Whether key repeat is enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        46,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.hasKeyRepeat()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    46,
                    35
                ],
                "name": "hasKeyRepeat",
                "rawdesc": "\nGets whether key repeat is enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasKeyRepeat)",
                "start": [
                    46,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.hasKeyRepeat",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)\n\n@*return* `supported` — Whether screen keyboard is supported.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)\n\n@*return* `supported` — Whether screen keyboard is supported.",
                    "finish": [
                        55,
                        46
                    ],
                    "rawdesc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)",
                    "returns": [
                        {
                            "desc": "Whether screen keyboard is supported.",
                            "name": "supported",
                            "rawdesc": "Whether screen keyboard is supported.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        55,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.hasScreenKeyboard()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    55,
                    40
                ],
                "name": "hasScreenKeyboard",
                "rawdesc": "\nGets whether screen keyboard is supported.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasScreenKeyboard)",
                "start": [
                    55,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.hasScreenKeyboard",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)\n\n@*return* `enabled` — Whether text input events are enabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)\n\n@*return* `enabled` — Whether text input events are enabled.",
                    "finish": [
                        64,
                        41
                    ],
                    "rawdesc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)",
                    "returns": [
                        {
                            "desc": "Whether text input events are enabled.",
                            "name": "enabled",
                            "rawdesc": "Whether text input events are enabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        64,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.hasTextInput()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    64,
                    35
                ],
                "name": "hasTextInput",
                "rawdesc": "\nGets whether text input events are enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.hasTextInput)",
                "start": [
                    64,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.hasTextInput",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n@*param* `key` — The key to check.\n\n@*return* `down` — True if the key is down, false if not.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The key to check.",
                            "finish": [
                                75,
                                33
                            ],
                            "name": "key",
                            "rawdesc": "The key to check.",
                            "start": [
                                75,
                                30
                            ],
                            "type": "local",
                            "view": "\"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139)"
                        }
                    ],
                    "desc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n@*param* `key` — The key to check.\n\n@*return* `down` — True if the key is down, false if not.\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "finish": [
                        75,
                        38
                    ],
                    "rawdesc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                    "returns": [
                        {
                            "desc": "True if the key is down, false if not.",
                            "name": "down",
                            "rawdesc": "True if the key is down, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        75,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.isDown(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139))\n  -> down: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    75,
                    29
                ],
                "name": "isDown",
                "rawdesc": "\nChecks whether a certain key is down. Not to be confused with love.keypressed or love.keyreleased.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isDown)\n\n\n---\n\n```lua\n-- \n-- All the keys you can press. Note that some keys may not be available on your keyboard or system.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/KeyConstant)\n-- \nkey:\n    | \"a\" -- The A key\n    | \"b\" -- The B key\n    | \"c\" -- The C key\n    | \"d\" -- The D key\n    | \"e\" -- The E key\n    | \"f\" -- The F key\n    | \"g\" -- The G key\n    | \"h\" -- The H key\n    | \"i\" -- The I key\n    | \"j\" -- The J key\n    | \"k\" -- The K key\n    | \"l\" -- The L key\n    | \"m\" -- The M key\n    | \"n\" -- The N key\n    | \"o\" -- The O key\n    | \"p\" -- The P key\n    | \"q\" -- The Q key\n    | \"r\" -- The R key\n    | \"s\" -- The S key\n    | \"t\" -- The T key\n    | \"u\" -- The U key\n    | \"v\" -- The V key\n    | \"w\" -- The W key\n    | \"x\" -- The X key\n    | \"y\" -- The Y key\n    | \"z\" -- The Z key\n    | \"0\" -- The zero key\n    | \"1\" -- The one key\n    | \"2\" -- The two key\n    | \"3\" -- The three key\n    | \"4\" -- The four key\n    | \"5\" -- The five key\n    | \"6\" -- The six key\n    | \"7\" -- The seven key\n    | \"8\" -- The eight key\n    | \"9\" -- The nine key\n    | \"space\" -- Space key\n    | \"!\" -- Exclamation mark key\n    | \"\\\"\" -- Double quote key\n    | \"#\" -- Hash key\n    | \"$\" -- Dollar key\n    | \"&\" -- Ampersand key\n    | \"'\" -- Single quote key\n    | \"(\" -- Left parenthesis key\n    | \")\" -- Right parenthesis key\n    | \"*\" -- Asterisk key\n    | \"+\" -- Plus key\n    | \",\" -- Comma key\n    | \"-\" -- Hyphen-minus key\n    | \".\" -- Full stop key\n    | \"/\" -- Slash key\n    | \":\" -- Colon key\n    | \";\" -- Semicolon key\n    | \"<\" -- Less-than key\n    | \"=\" -- Equal key\n    | \">\" -- Greater-than key\n    | \"?\" -- Question mark key\n    | \"@\" -- At sign key\n    | \"[\" -- Left square bracket key\n    | \"\\\" -- Backslash key\n    | \"]\" -- Right square bracket key\n    | \"^\" -- Caret key\n    | \"_\" -- Underscore key\n    | \"`\" -- Grave accent key\n    | \"kp0\" -- The numpad zero key\n    | \"kp1\" -- The numpad one key\n    | \"kp2\" -- The numpad two key\n    | \"kp3\" -- The numpad three key\n    | \"kp4\" -- The numpad four key\n    | \"kp5\" -- The numpad five key\n    | \"kp6\" -- The numpad six key\n    | \"kp7\" -- The numpad seven key\n    | \"kp8\" -- The numpad eight key\n    | \"kp9\" -- The numpad nine key\n    | \"kp.\" -- The numpad decimal point key\n    | \"kp/\" -- The numpad division key\n    | \"kp*\" -- The numpad multiplication key\n    | \"kp-\" -- The numpad substraction key\n    | \"kp+\" -- The numpad addition key\n    | \"kpenter\" -- The numpad enter key\n    | \"kp=\" -- The numpad equals key\n    | \"up\" -- Up cursor key\n    | \"down\" -- Down cursor key\n    | \"right\" -- Right cursor key\n    | \"left\" -- Left cursor key\n    | \"home\" -- Home key\n    | \"end\" -- End key\n    | \"pageup\" -- Page up key\n    | \"pagedown\" -- Page down key\n    | \"insert\" -- Insert key\n    | \"backspace\" -- Backspace key\n    | \"tab\" -- Tab key\n    | \"clear\" -- Clear key\n    | \"return\" -- Return key\n    | \"delete\" -- Delete key\n    | \"f1\" -- The 1st function key\n    | \"f2\" -- The 2nd function key\n    | \"f3\" -- The 3rd function key\n    | \"f4\" -- The 4th function key\n    | \"f5\" -- The 5th function key\n    | \"f6\" -- The 6th function key\n    | \"f7\" -- The 7th function key\n    | \"f8\" -- The 8th function key\n    | \"f9\" -- The 9th function key\n    | \"f10\" -- The 10th function key\n    | \"f11\" -- The 11th function key\n    | \"f12\" -- The 12th function key\n    | \"f13\" -- The 13th function key\n    | \"f14\" -- The 14th function key\n    | \"f15\" -- The 15th function key\n    | \"numlock\" -- Num-lock key\n    | \"capslock\" -- Caps-lock key\n    | \"scrollock\" -- Scroll-lock key\n    | \"rshift\" -- Right shift key\n    | \"lshift\" -- Left shift key\n    | \"rctrl\" -- Right control key\n    | \"lctrl\" -- Left control key\n    | \"ralt\" -- Right alt key\n    | \"lalt\" -- Left alt key\n    | \"rmeta\" -- Right meta key\n    | \"lmeta\" -- Left meta key\n    | \"lsuper\" -- Left super key\n    | \"rsuper\" -- Right super key\n    | \"mode\" -- Mode key\n    | \"compose\" -- Compose key\n    | \"pause\" -- Pause key\n    | \"escape\" -- Escape key\n    | \"help\" -- Help key\n    | \"print\" -- Print key\n    | \"sysreq\" -- System request key\n    | \"break\" -- Break key\n    | \"menu\" -- Menu key\n    | \"power\" -- Power key\n    | \"euro\" -- Euro (&euro;) key\n    | \"undo\" -- Undo key\n    | \"www\" -- WWW key\n    | \"mail\" -- Mail key\n    | \"calculator\" -- Calculator key\n    | \"appsearch\" -- Application search key\n    | \"apphome\" -- Application home key\n    | \"appback\" -- Application back key\n    | \"appforward\" -- Application forward key\n    | \"apprefresh\" -- Application refresh key\n    | \"appbookmarks\" -- Application bookmarks key\n```",
                "start": [
                    75,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.isDown",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n@*param* `scancode` — A Scancode to check.\n\n@*return* `down` — True if any supplied Scancode is down, false if not.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "A Scancode to check.",
                            "finish": [
                                88,
                                46
                            ],
                            "name": "scancode",
                            "rawdesc": "A Scancode to check.",
                            "start": [
                                88,
                                38
                            ],
                            "type": "local",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        },
                        {
                            "desc": "\nKeyboard scancodes.\n\nScancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nUsing scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n\nOne could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n\n\n[Open in Browser](https://love2d.org/wiki/Scancode)\n",
                            "finish": [
                                88,
                                51
                            ],
                            "rawdesc": "\nKeyboard scancodes.\n\nScancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\nUsing scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n\nOne could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n\n\n[Open in Browser](https://love2d.org/wiki/Scancode)\n",
                            "start": [
                                88,
                                48
                            ],
                            "type": "...",
                            "view": "\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189)"
                        }
                    ],
                    "desc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n@*param* `scancode` — A Scancode to check.\n\n@*return* `down` — True if any supplied Scancode is down, false if not.\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "finish": [
                        88,
                        56
                    ],
                    "rawdesc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                    "returns": [
                        {
                            "desc": "True if any supplied Scancode is down, false if not.",
                            "name": "down",
                            "rawdesc": "True if any supplied Scancode is down, false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        88,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.isScancodeDown(scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189), ...\"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189))\n  -> down: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    88,
                    37
                ],
                "name": "isScancodeDown",
                "rawdesc": "\nChecks whether the specified Scancodes are pressed. Not to be confused with love.keypressed or love.keyreleased.\n\nUnlike regular KeyConstants, Scancodes are keyboard layout-independent. The scancode 'w' is used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.isScancodeDown)\n\n\n```lua\n-- \n-- Keyboard scancodes.\n-- \n-- Scancodes are keyboard layout-independent, so the scancode \"w\" will be generated if the key in the same place as the \"w\" key on an American QWERTY keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are.\n-- \n-- Using scancodes, rather than keycodes, is useful because keyboards with layouts differing from the US/UK layout(s) might have keys that generate 'unknown' keycodes, but the scancodes will still be detected. This however would necessitate having a list for each keyboard layout one would choose to support.\n-- \n-- One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/Scancode)\n-- \nscancode:\n    | \"a\" -- The 'A' key on an American layout.\n    | \"b\" -- The 'B' key on an American layout.\n    | \"c\" -- The 'C' key on an American layout.\n    | \"d\" -- The 'D' key on an American layout.\n    | \"e\" -- The 'E' key on an American layout.\n    | \"f\" -- The 'F' key on an American layout.\n    | \"g\" -- The 'G' key on an American layout.\n    | \"h\" -- The 'H' key on an American layout.\n    | \"i\" -- The 'I' key on an American layout.\n    | \"j\" -- The 'J' key on an American layout.\n    | \"k\" -- The 'K' key on an American layout.\n    | \"l\" -- The 'L' key on an American layout.\n    | \"m\" -- The 'M' key on an American layout.\n    | \"n\" -- The 'N' key on an American layout.\n    | \"o\" -- The 'O' key on an American layout.\n    | \"p\" -- The 'P' key on an American layout.\n    | \"q\" -- The 'Q' key on an American layout.\n    | \"r\" -- The 'R' key on an American layout.\n    | \"s\" -- The 'S' key on an American layout.\n    | \"t\" -- The 'T' key on an American layout.\n    | \"u\" -- The 'U' key on an American layout.\n    | \"v\" -- The 'V' key on an American layout.\n    | \"w\" -- The 'W' key on an American layout.\n    | \"x\" -- The 'X' key on an American layout.\n    | \"y\" -- The 'Y' key on an American layout.\n    | \"z\" -- The 'Z' key on an American layout.\n    | \"1\" -- The '1' key on an American layout.\n    | \"2\" -- The '2' key on an American layout.\n    | \"3\" -- The '3' key on an American layout.\n    | \"4\" -- The '4' key on an American layout.\n    | \"5\" -- The '5' key on an American layout.\n    | \"6\" -- The '6' key on an American layout.\n    | \"7\" -- The '7' key on an American layout.\n    | \"8\" -- The '8' key on an American layout.\n    | \"9\" -- The '9' key on an American layout.\n    | \"0\" -- The '0' key on an American layout.\n    | \"return\" -- The 'return' / 'enter' key on an American layout.\n    | \"escape\" -- The 'escape' key on an American layout.\n    | \"backspace\" -- The 'backspace' key on an American layout.\n    | \"tab\" -- The 'tab' key on an American layout.\n    | \"space\" -- The spacebar on an American layout.\n    | \"-\" -- The minus key on an American layout.\n    | \"=\" -- The equals key on an American layout.\n    | \"[\" -- The left-bracket key on an American layout.\n    | \"]\" -- The right-bracket key on an American layout.\n    | \"\\\" -- The backslash key on an American layout.\n    | \"nonus#\" -- The non-U.S. hash scancode.\n    | \";\" -- The semicolon key on an American layout.\n    | \"'\" -- The apostrophe key on an American layout.\n    | \"`\" -- The back-tick / grave key on an American layout.\n    | \",\" -- The comma key on an American layout.\n    | \".\" -- The period key on an American layout.\n    | \"/\" -- The forward-slash key on an American layout.\n    | \"capslock\" -- The capslock key on an American layout.\n    | \"f1\" -- The F1 key on an American layout.\n    | \"f2\" -- The F2 key on an American layout.\n    | \"f3\" -- The F3 key on an American layout.\n    | \"f4\" -- The F4 key on an American layout.\n    | \"f5\" -- The F5 key on an American layout.\n    | \"f6\" -- The F6 key on an American layout.\n    | \"f7\" -- The F7 key on an American layout.\n    | \"f8\" -- The F8 key on an American layout.\n    | \"f9\" -- The F9 key on an American layout.\n    | \"f10\" -- The F10 key on an American layout.\n    | \"f11\" -- The F11 key on an American layout.\n    | \"f12\" -- The F12 key on an American layout.\n    | \"f13\" -- The F13 key on an American layout.\n    | \"f14\" -- The F14 key on an American layout.\n    | \"f15\" -- The F15 key on an American layout.\n    | \"f16\" -- The F16 key on an American layout.\n    | \"f17\" -- The F17 key on an American layout.\n    | \"f18\" -- The F18 key on an American layout.\n    | \"f19\" -- The F19 key on an American layout.\n    | \"f20\" -- The F20 key on an American layout.\n    | \"f21\" -- The F21 key on an American layout.\n    | \"f22\" -- The F22 key on an American layout.\n    | \"f23\" -- The F23 key on an American layout.\n    | \"f24\" -- The F24 key on an American layout.\n    | \"lctrl\" -- The left control key on an American layout.\n    | \"lshift\" -- The left shift key on an American layout.\n    | \"lalt\" -- The left alt / option key on an American layout.\n    | \"lgui\" -- The left GUI (command / windows / super) key on an American layout.\n    | \"rctrl\" -- The right control key on an American layout.\n    | \"rshift\" -- The right shift key on an American layout.\n    | \"ralt\" -- The right alt / option key on an American layout.\n    | \"rgui\" -- The right GUI (command / windows / super) key on an American layout.\n    | \"printscreen\" -- The printscreen key on an American layout.\n    | \"scrolllock\" -- The scroll-lock key on an American layout.\n    | \"pause\" -- The pause key on an American layout.\n    | \"insert\" -- The insert key on an American layout.\n    | \"home\" -- The home key on an American layout.\n    | \"numlock\" -- The numlock / clear key on an American layout.\n    | \"pageup\" -- The page-up key on an American layout.\n    | \"delete\" -- The forward-delete key on an American layout.\n    | \"end\" -- The end key on an American layout.\n    | \"pagedown\" -- The page-down key on an American layout.\n    | \"right\" -- The right-arrow key on an American layout.\n    | \"left\" -- The left-arrow key on an American layout.\n    | \"down\" -- The down-arrow key on an American layout.\n    | \"up\" -- The up-arrow key on an American layout.\n    | \"nonusbackslash\" -- The non-U.S. backslash scancode.\n    | \"application\" -- The application key on an American layout. Windows contextual menu, compose key.\n    | \"execute\" -- The 'execute' key on an American layout.\n    | \"help\" -- The 'help' key on an American layout.\n    | \"menu\" -- The 'menu' key on an American layout.\n    | \"select\" -- The 'select' key on an American layout.\n    | \"stop\" -- The 'stop' key on an American layout.\n    | \"again\" -- The 'again' key on an American layout.\n    | \"undo\" -- The 'undo' key on an American layout.\n    | \"cut\" -- The 'cut' key on an American layout.\n    | \"copy\" -- The 'copy' key on an American layout.\n    | \"paste\" -- The 'paste' key on an American layout.\n    | \"find\" -- The 'find' key on an American layout.\n    | \"kp/\" -- The keypad forward-slash key on an American layout.\n    | \"kp*\" -- The keypad '*' key on an American layout.\n    | \"kp-\" -- The keypad minus key on an American layout.\n    | \"kp+\" -- The keypad plus key on an American layout.\n    | \"kp=\" -- The keypad equals key on an American layout.\n    | \"kpenter\" -- The keypad enter key on an American layout.\n    | \"kp1\" -- The keypad '1' key on an American layout.\n    | \"kp2\" -- The keypad '2' key on an American layout.\n    | \"kp3\" -- The keypad '3' key on an American layout.\n    | \"kp4\" -- The keypad '4' key on an American layout.\n    | \"kp5\" -- The keypad '5' key on an American layout.\n    | \"kp6\" -- The keypad '6' key on an American layout.\n    | \"kp7\" -- The keypad '7' key on an American layout.\n    | \"kp8\" -- The keypad '8' key on an American layout.\n    | \"kp9\" -- The keypad '9' key on an American layout.\n    | \"kp0\" -- The keypad '0' key on an American layout.\n    | \"kp.\" -- The keypad period key on an American layout.\n    | \"international1\" -- The 1st international key on an American layout. Used on Asian keyboards.\n    | \"international2\" -- The 2nd international key on an American layout.\n    | \"international3\" -- The 3rd international  key on an American layout. Yen.\n    | \"international4\" -- The 4th international key on an American layout.\n    | \"international5\" -- The 5th international key on an American layout.\n    | \"international6\" -- The 6th international key on an American layout.\n    | \"international7\" -- The 7th international key on an American layout.\n    | \"international8\" -- The 8th international key on an American layout.\n    | \"international9\" -- The 9th international key on an American layout.\n    | \"lang1\" -- Hangul/English toggle scancode.\n    | \"lang2\" -- Hanja conversion scancode.\n    | \"lang3\" -- Katakana scancode.\n    | \"lang4\" -- Hiragana scancode.\n    | \"lang5\" -- Zenkaku/Hankaku scancode.\n    | \"mute\" -- The mute key on an American layout.\n    | \"volumeup\" -- The volume up key on an American layout.\n    | \"volumedown\" -- The volume down key on an American layout.\n    | \"audionext\" -- The audio next track key on an American layout.\n    | \"audioprev\" -- The audio previous track key on an American layout.\n    | \"audiostop\" -- The audio stop key on an American layout.\n    | \"audioplay\" -- The audio play key on an American layout.\n    | \"audiomute\" -- The audio mute key on an American layout.\n    | \"mediaselect\" -- The media select key on an American layout.\n    | \"www\" -- The 'WWW' key on an American layout.\n    | \"mail\" -- The Mail key on an American layout.\n    | \"calculator\" -- The calculator key on an American layout.\n    | \"computer\" -- The 'computer' key on an American layout.\n    | \"acsearch\" -- The AC Search key on an American layout.\n    | \"achome\" -- The AC Home key on an American layout.\n    | \"acback\" -- The AC Back key on an American layout.\n    | \"acforward\" -- The AC Forward key on an American layout.\n    | \"acstop\" -- Th AC Stop key on an American layout.\n    | \"acrefresh\" -- The AC Refresh key on an American layout.\n    | \"acbookmarks\" -- The AC Bookmarks key on an American layout.\n    | \"power\" -- The system power scancode.\n    | \"brightnessdown\" -- The brightness-down scancode.\n    | \"brightnessup\" -- The brightness-up scancode.\n    | \"displayswitch\" -- The display switch scancode.\n    | \"kbdillumtoggle\" -- The keyboard illumination toggle scancode.\n    | \"kbdillumdown\" -- The keyboard illumination down scancode.\n    | \"kbdillumup\" -- The keyboard illumination up scancode.\n    | \"eject\" -- The eject scancode.\n    | \"sleep\" -- The system sleep scancode.\n    | \"alterase\" -- The alt-erase key on an American layout.\n    | \"sysreq\" -- The sysreq key on an American layout.\n    | \"cancel\" -- The 'cancel' key on an American layout.\n    | \"clear\" -- The 'clear' key on an American layout.\n    | \"prior\" -- The 'prior' key on an American layout.\n    | \"return2\" -- The 'return2' key on an American layout.\n    | \"separator\" -- The 'separator' key on an American layout.\n    | \"out\" -- The 'out' key on an American layout.\n    | \"oper\" -- The 'oper' key on an American layout.\n    | \"clearagain\" -- The 'clearagain' key on an American layout.\n    | \"crsel\" -- The 'crsel' key on an American layout.\n    | \"exsel\" -- The 'exsel' key on an American layout.\n    | \"kp00\" -- The keypad 00 key on an American layout.\n    | \"kp000\" -- The keypad 000 key on an American layout.\n    | \"thsousandsseparator\" -- The thousands-separator key on an American layout.\n    | \"decimalseparator\" -- The decimal separator key on an American layout.\n    | \"currencyunit\" -- The currency unit key on an American layout.\n    | \"currencysubunit\" -- The currency sub-unit key on an American layout.\n    | \"app1\" -- The 'app1' scancode.\n    | \"app2\" -- The 'app2' scancode.\n    | \"unknown\" -- An unknown key.\n```",
                "start": [
                    88,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.isScancodeDown",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)\n\n@*param* `enable` — Whether repeat keypress events should be enabled when a key is held down.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether repeat keypress events should be enabled when a key is held down.",
                            "finish": [
                                97,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "Whether repeat keypress events should be enabled when a key is held down.",
                            "start": [
                                97,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)\n\n@*param* `enable` — Whether repeat keypress events should be enabled when a key is held down.",
                    "finish": [
                        97,
                        47
                    ],
                    "rawdesc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)",
                    "start": [
                        97,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.setKeyRepeat(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    97,
                    35
                ],
                "name": "setKeyRepeat",
                "rawdesc": "\nEnables or disables key repeat for love.keypressed. It is disabled by default.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setKeyRepeat)",
                "start": [
                    97,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.setKeyRepeat",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)\n\n\n---\n\n@*param* `enable` — Whether text input events should be enabled.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether text input events should be enabled.",
                            "finish": [
                                109,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "Whether text input events should be enabled.",
                            "start": [
                                109,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)\n\n\n---\n\n@*param* `enable` — Whether text input events should be enabled.",
                    "finish": [
                        109,
                        47
                    ],
                    "rawdesc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)",
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function love.keyboard.setTextInput(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/keyboard.lua",
                "finish": [
                    109,
                    35
                ],
                "name": "setTextInput",
                "rawdesc": "\nEnables or disables text input events. It is enabled by default on Windows, Mac, and Linux, and disabled by default on iOS and Android.\n\nOn touch devices, this shows the system's native on-screen keyboard when it's enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.keyboard.setTextInput)",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.keyboard.setTextInput",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a key is pressed.\n",
                "finish": [
                    232,
                    142
                ],
                "rawdesc": "\nCallback function triggered when a key is pressed.\n",
                "start": [
                    232,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139), isrepeat: boolean)|fun(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139), scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189), isrepeat: boolean)"
            }
        ],
        "fields": [],
        "name": "love.keypressed",
        "type": "type",
        "view": "love.keypressed"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a keyboard key is released.\n",
                "finish": [
                    237,
                    78
                ],
                "rawdesc": "\nCallback function triggered when a keyboard key is released.\n",
                "start": [
                    237,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(key: \"!\"|\"#\"|\"$\"|\"&\"|\"'\"...(+139), scancode: \"'\"|\",\"|\"-\"|\".\"|\"/\"...(+189))"
            }
        ],
        "fields": [],
        "name": "love.keyreleased",
        "type": "type",
        "view": "love.keyreleased"
    },
    {
        "defines": [
            {
                "desc": "\nThis function is called exactly once at the beginning of the game.\n",
                "finish": [
                    242,
                    57
                ],
                "rawdesc": "\nThis function is called exactly once at the beginning of the game.\n",
                "start": [
                    242,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(arg: table, unfilteredArg: table)"
            }
        ],
        "fields": [],
        "name": "love.load",
        "type": "type",
        "view": "love.load"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when the system is running out of memory on mobile devices.\n\nMobile operating systems may forcefully kill the game if it uses too much memory, so any non-critical resource should be removed if possible (by setting all variables referencing the resources to '''nil'''), when this event is triggered. Sounds and images in particular tend to use the most memory.\n",
                "finish": [
                    249,
                    30
                ],
                "rawdesc": "\nCallback function triggered when the system is running out of memory on mobile devices.\n\nMobile operating systems may forcefully kill the game if it uses too much memory, so any non-critical resource should be removed if possible (by setting all variables referencing the resources to '''nil'''), when this event is triggered. Sounds and images in particular tend to use the most memory.\n",
                "start": [
                    249,
                    10
                ],
                "type": "doc.alias",
                "view": "fun()"
            }
        ],
        "fields": [],
        "name": "love.lowmemory",
        "type": "type",
        "view": "love.lowmemory"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "extends": {
                    "desc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                    "finish": [
                        9,
                        14
                    ],
                    "rawdesc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                    "start": [
                        9,
                        12
                    ],
                    "type": "table",
                    "view": "love.math"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    9,
                    9
                ],
                "name": "math",
                "rawdesc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.math",
                "visible": "public"
            }
        ],
        "name": "love.math",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    8,
                    19
                ],
                "rawdesc": "\nProvides system-independent mathematical functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.math",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)\n\n@*param* `rb` — Red color component in 0..255 range.\n\n@*param* `gb` — Green color component in 0..255 range.\n\n@*param* `bb` — Blue color component in 0..255 range.\n\n@*param* `ab` — Alpha color component in 0..255 range.\n\n@*return* `r` — Red color component in 0..1 range.\n\n@*return* `g` — Green color component in 0..1 range.\n\n@*return* `b` — Blue color component in 0..1 range.\n\n@*return* `a` — Alpha color component in 0..1 range or nil if alpha is not specified.",
                "extends": {
                    "args": [
                        {
                            "desc": "Red color component in 0..255 range.",
                            "finish": [
                                25,
                                36
                            ],
                            "name": "rb",
                            "rawdesc": "Red color component in 0..255 range.",
                            "start": [
                                25,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component in 0..255 range.",
                            "finish": [
                                25,
                                40
                            ],
                            "name": "gb",
                            "rawdesc": "Green color component in 0..255 range.",
                            "start": [
                                25,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component in 0..255 range.",
                            "finish": [
                                25,
                                44
                            ],
                            "name": "bb",
                            "rawdesc": "Blue color component in 0..255 range.",
                            "start": [
                                25,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component in 0..255 range.",
                            "finish": [
                                25,
                                48
                            ],
                            "name": "ab",
                            "rawdesc": "Alpha color component in 0..255 range.",
                            "start": [
                                25,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)\n\n@*param* `rb` — Red color component in 0..255 range.\n\n@*param* `gb` — Green color component in 0..255 range.\n\n@*param* `bb` — Blue color component in 0..255 range.\n\n@*param* `ab` — Alpha color component in 0..255 range.\n\n@*return* `r` — Red color component in 0..1 range.\n\n@*return* `g` — Green color component in 0..1 range.\n\n@*return* `b` — Blue color component in 0..1 range.\n\n@*return* `a` — Alpha color component in 0..1 range or nil if alpha is not specified.",
                    "finish": [
                        25,
                        53
                    ],
                    "rawdesc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)",
                    "returns": [
                        {
                            "desc": "Red color component in 0..1 range.",
                            "name": "r",
                            "rawdesc": "Red color component in 0..1 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component in 0..1 range.",
                            "name": "g",
                            "rawdesc": "Green color component in 0..1 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component in 0..1 range.",
                            "name": "b",
                            "rawdesc": "Blue color component in 0..1 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component in 0..1 range or nil if alpha is not specified.",
                            "name": "a",
                            "rawdesc": "Alpha color component in 0..1 range or nil if alpha is not specified.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        25,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.colorFromBytes(rb: number, gb: number, bb: number, ab?: number)\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    25,
                    33
                ],
                "name": "colorFromBytes",
                "rawdesc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)",
                "start": [
                    25,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)\n\n@*param* `r` — Red color component.\n\n@*param* `g` — Green color component.\n\n@*param* `b` — Blue color component.\n\n@*param* `a` — Alpha color component.\n\n@*return* `rb` — Red color component in 0..255 range.\n\n@*return* `gb` — Green color component in 0..255 range.\n\n@*return* `bb` — Blue color component in 0..255 range.\n\n@*return* `ab` — Alpha color component in 0..255 range or nil if alpha is not specified.",
                "extends": {
                    "args": [
                        {
                            "desc": "Red color component.",
                            "finish": [
                                41,
                                33
                            ],
                            "name": "r",
                            "rawdesc": "Red color component.",
                            "start": [
                                41,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component.",
                            "finish": [
                                41,
                                36
                            ],
                            "name": "g",
                            "rawdesc": "Green color component.",
                            "start": [
                                41,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component.",
                            "finish": [
                                41,
                                39
                            ],
                            "name": "b",
                            "rawdesc": "Blue color component.",
                            "start": [
                                41,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component.",
                            "finish": [
                                41,
                                42
                            ],
                            "name": "a",
                            "rawdesc": "Alpha color component.",
                            "start": [
                                41,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)\n\n@*param* `r` — Red color component.\n\n@*param* `g` — Green color component.\n\n@*param* `b` — Blue color component.\n\n@*param* `a` — Alpha color component.\n\n@*return* `rb` — Red color component in 0..255 range.\n\n@*return* `gb` — Green color component in 0..255 range.\n\n@*return* `bb` — Blue color component in 0..255 range.\n\n@*return* `ab` — Alpha color component in 0..255 range or nil if alpha is not specified.",
                    "finish": [
                        41,
                        47
                    ],
                    "rawdesc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)",
                    "returns": [
                        {
                            "desc": "Red color component in 0..255 range.",
                            "name": "rb",
                            "rawdesc": "Red color component in 0..255 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component in 0..255 range.",
                            "name": "gb",
                            "rawdesc": "Green color component in 0..255 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component in 0..255 range.",
                            "name": "bb",
                            "rawdesc": "Blue color component in 0..255 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component in 0..255 range or nil if alpha is not specified.",
                            "name": "ab",
                            "rawdesc": "Alpha color component in 0..255 range or nil if alpha is not specified.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.colorToBytes(r: number, g: number, b: number, a?: number)\n  -> rb: number\n  2. gb: number\n  3. bb: number\n  4. ab: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    41,
                    31
                ],
                "name": "colorToBytes",
                "rawdesc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)\n\n\n---\n\n@*param* `r` — The red channel of the sRGB color to convert.\n\n@*param* `g` — The green channel of the sRGB color to convert.\n\n@*param* `b` — The blue channel of the sRGB color to convert.\n\n@*return* `lr` — The red channel of the converted color in linear RGB space.\n\n@*return* `lg` — The green channel of the converted color in linear RGB space.\n\n@*return* `lb` — The blue channel of the converted color in linear RGB space.",
                "extends": {
                    "args": [
                        {
                            "desc": "The red channel of the sRGB color to convert.",
                            "finish": [
                                61,
                                34
                            ],
                            "name": "r",
                            "rawdesc": "The red channel of the sRGB color to convert.",
                            "start": [
                                61,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the sRGB color to convert.",
                            "finish": [
                                61,
                                37
                            ],
                            "name": "g",
                            "rawdesc": "The green channel of the sRGB color to convert.",
                            "start": [
                                61,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the sRGB color to convert.",
                            "finish": [
                                61,
                                40
                            ],
                            "name": "b",
                            "rawdesc": "The blue channel of the sRGB color to convert.",
                            "start": [
                                61,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)\n\n\n---\n\n@*param* `r` — The red channel of the sRGB color to convert.\n\n@*param* `g` — The green channel of the sRGB color to convert.\n\n@*param* `b` — The blue channel of the sRGB color to convert.\n\n@*return* `lr` — The red channel of the converted color in linear RGB space.\n\n@*return* `lg` — The green channel of the converted color in linear RGB space.\n\n@*return* `lb` — The blue channel of the converted color in linear RGB space.",
                    "finish": [
                        61,
                        45
                    ],
                    "rawdesc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)",
                    "returns": [
                        {
                            "desc": "The red channel of the converted color in linear RGB space.",
                            "name": "lr",
                            "rawdesc": "The red channel of the converted color in linear RGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the converted color in linear RGB space.",
                            "name": "lg",
                            "rawdesc": "The green channel of the converted color in linear RGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the converted color in linear RGB space.",
                            "name": "lb",
                            "rawdesc": "The blue channel of the converted color in linear RGB space.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.gammaToLinear(r: number, g: number, b: number)\n  -> lr: number\n  2. lg: number\n  3. lb: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    61,
                    32
                ],
                "name": "gammaToLinear",
                "rawdesc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)\n\n@*return* `low` — Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.\n\n@*return* `high` — Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)\n\n@*return* `low` — Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.\n\n@*return* `high` — Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                    "finish": [
                        73,
                        38
                    ],
                    "rawdesc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)",
                    "returns": [
                        {
                            "desc": "Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.",
                            "name": "low",
                            "rawdesc": "Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                            "name": "high",
                            "rawdesc": "Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.getRandomSeed()\n  -> low: number\n  2. high: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    73,
                    32
                ],
                "name": "getRandomSeed",
                "rawdesc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)\n\n@*return* `state` — The current state of the random number generator, represented as a string.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)\n\n@*return* `state` — The current state of the random number generator, represented as a string.",
                    "finish": [
                        84,
                        39
                    ],
                    "rawdesc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)",
                    "returns": [
                        {
                            "desc": "The current state of the random number generator, represented as a string.",
                            "name": "state",
                            "rawdesc": "The current state of the random number generator, represented as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        84,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.getRandomState()\n  -> state: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    84,
                    33
                ],
                "name": "getRandomState",
                "rawdesc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)",
                "start": [
                    84,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)\n\n\n---\n\n@*param* `vertices` — The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `convex` — Whether the given polygon is convex.",
                "extends": {
                    "args": [
                        {
                            "desc": "The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "finish": [
                                97,
                                36
                            ],
                            "name": "vertices",
                            "rawdesc": "The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "start": [
                                97,
                                28
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)\n\n\n---\n\n@*param* `vertices` — The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `convex` — Whether the given polygon is convex.",
                    "finish": [
                        97,
                        41
                    ],
                    "rawdesc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)",
                    "returns": [
                        {
                            "desc": "Whether the given polygon is convex.",
                            "name": "convex",
                            "rawdesc": "Whether the given polygon is convex.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        97,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.isConvex(vertices: table)\n  -> convex: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    97,
                    27
                ],
                "name": "isConvex",
                "rawdesc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)",
                "start": [
                    97,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)\n\n\n---\n\n@*param* `lr` — The red channel of the linear RGB color to convert.\n\n@*param* `lg` — The green channel of the linear RGB color to convert.\n\n@*param* `lb` — The blue channel of the linear RGB color to convert.\n\n@*return* `cr` — The red channel of the converted color in gamma sRGB space.\n\n@*return* `cg` — The green channel of the converted color in gamma sRGB space.\n\n@*return* `cb` — The blue channel of the converted color in gamma sRGB space.",
                "extends": {
                    "args": [
                        {
                            "desc": "The red channel of the linear RGB color to convert.",
                            "finish": [
                                119,
                                35
                            ],
                            "name": "lr",
                            "rawdesc": "The red channel of the linear RGB color to convert.",
                            "start": [
                                119,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the linear RGB color to convert.",
                            "finish": [
                                119,
                                39
                            ],
                            "name": "lg",
                            "rawdesc": "The green channel of the linear RGB color to convert.",
                            "start": [
                                119,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the linear RGB color to convert.",
                            "finish": [
                                119,
                                43
                            ],
                            "name": "lb",
                            "rawdesc": "The blue channel of the linear RGB color to convert.",
                            "start": [
                                119,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)\n\n\n---\n\n@*param* `lr` — The red channel of the linear RGB color to convert.\n\n@*param* `lg` — The green channel of the linear RGB color to convert.\n\n@*param* `lb` — The blue channel of the linear RGB color to convert.\n\n@*return* `cr` — The red channel of the converted color in gamma sRGB space.\n\n@*return* `cg` — The green channel of the converted color in gamma sRGB space.\n\n@*return* `cb` — The blue channel of the converted color in gamma sRGB space.",
                    "finish": [
                        119,
                        48
                    ],
                    "rawdesc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)",
                    "returns": [
                        {
                            "desc": "The red channel of the converted color in gamma sRGB space.",
                            "name": "cr",
                            "rawdesc": "The red channel of the converted color in gamma sRGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the converted color in gamma sRGB space.",
                            "name": "cg",
                            "rawdesc": "The green channel of the converted color in gamma sRGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the converted color in gamma sRGB space.",
                            "name": "cb",
                            "rawdesc": "The blue channel of the converted color in gamma sRGB space.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        119,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.linearToGamma(lr: number, lg: number, lb: number)\n  -> cr: number\n  2. cg: number\n  3. cb: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    119,
                    32
                ],
                "name": "linearToGamma",
                "rawdesc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)",
                "start": [
                    119,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)\n\n\n---\n\n@*param* `vertices` — The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `curve` — A Bézier curve object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "finish": [
                                132,
                                42
                            ],
                            "name": "vertices",
                            "rawdesc": "The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "start": [
                                132,
                                34
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)\n\n\n---\n\n@*param* `vertices` — The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `curve` — A Bézier curve object.",
                    "finish": [
                        132,
                        47
                    ],
                    "rawdesc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)",
                    "returns": [
                        {
                            "desc": "A Bézier curve object.",
                            "name": "curve",
                            "rawdesc": "A Bézier curve object.",
                            "type": "function.return",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "start": [
                        132,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.newBezierCurve(vertices: table)\n  -> curve: love.BezierCurve"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    132,
                    33
                ],
                "name": "newBezierCurve",
                "rawdesc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)",
                "start": [
                    132,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)\n\n\n---\n\n@*return* `rng` — The new Random Number Generator object.",
                "extends": {
                    "args": [],
                    "desc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)\n\n\n---\n\n@*return* `rng` — The new Random Number Generator object.",
                    "finish": [
                        143,
                        43
                    ],
                    "rawdesc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)",
                    "returns": [
                        {
                            "desc": "The new Random Number Generator object.",
                            "name": "rng",
                            "rawdesc": "The new Random Number Generator object.",
                            "type": "function.return",
                            "view": "love.RandomGenerator"
                        }
                    ],
                    "start": [
                        143,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.newRandomGenerator()\n  -> rng: love.RandomGenerator"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    143,
                    37
                ],
                "name": "newRandomGenerator",
                "rawdesc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)",
                "start": [
                    143,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)\n\n\n---\n\n@*return* `transform` — The new Transform object.",
                "extends": {
                    "args": [],
                    "desc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)\n\n\n---\n\n@*return* `transform` — The new Transform object.",
                    "finish": [
                        153,
                        37
                    ],
                    "rawdesc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)",
                    "returns": [
                        {
                            "desc": "The new Transform object.",
                            "name": "transform",
                            "rawdesc": "The new Transform object.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        153,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.newTransform()\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    153,
                    31
                ],
                "name": "newTransform",
                "rawdesc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)",
                "start": [
                    153,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)\n\n\n---\n\n@*param* `x` — The number used to generate the noise value.\n\n@*return* `value` — The noise value in the range of 1.",
                "extends": {
                    "args": [
                        {
                            "desc": "The number used to generate the noise value.",
                            "finish": [
                                170,
                                26
                            ],
                            "name": "x",
                            "rawdesc": "The number used to generate the noise value.",
                            "start": [
                                170,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)\n\n\n---\n\n@*param* `x` — The number used to generate the noise value.\n\n@*return* `value` — The noise value in the range of 1.",
                    "finish": [
                        170,
                        31
                    ],
                    "rawdesc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)",
                    "returns": [
                        {
                            "desc": "The noise value in the range of 1.",
                            "name": "value",
                            "rawdesc": "The noise value in the range of 1.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.noise(x: number)\n  -> value: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    170,
                    24
                ],
                "name": "noise",
                "rawdesc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)",
                "start": [
                    170,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)\n\n\n---\n\n@*return* `number` — The pseudo-random number.",
                "extends": {
                    "args": [],
                    "desc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)\n\n\n---\n\n@*return* `number` — The pseudo-random number.",
                    "finish": [
                        181,
                        31
                    ],
                    "rawdesc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)",
                    "returns": [
                        {
                            "desc": "The pseudo-random number.",
                            "name": "number",
                            "rawdesc": "The pseudo-random number.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.random()\n  -> number: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    181,
                    25
                ],
                "name": "random",
                "rawdesc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)\n\n@*param* `stddev` — Standard deviation of the distribution.\n\n@*param* `mean` — The mean of the distribution.\n\n@*return* `number` — Normally distributed random number with variance (stddev)² and the specified mean.",
                "extends": {
                    "args": [
                        {
                            "desc": "Standard deviation of the distribution.",
                            "finish": [
                                192,
                                38
                            ],
                            "name": "stddev",
                            "rawdesc": "Standard deviation of the distribution.",
                            "start": [
                                192,
                                32
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The mean of the distribution.",
                            "finish": [
                                192,
                                44
                            ],
                            "name": "mean",
                            "rawdesc": "The mean of the distribution.",
                            "start": [
                                192,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)\n\n@*param* `stddev` — Standard deviation of the distribution.\n\n@*param* `mean` — The mean of the distribution.\n\n@*return* `number` — Normally distributed random number with variance (stddev)² and the specified mean.",
                    "finish": [
                        192,
                        49
                    ],
                    "rawdesc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)",
                    "returns": [
                        {
                            "desc": "Normally distributed random number with variance (stddev)² and the specified mean.",
                            "name": "number",
                            "rawdesc": "Normally distributed random number with variance (stddev)² and the specified mean.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        192,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.randomNormal(stddev?: number, mean?: number)\n  -> number: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    192,
                    31
                ],
                "name": "randomNormal",
                "rawdesc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)",
                "start": [
                    192,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)\n\n\n---\n\n@*param* `seed` — The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                "extends": {
                    "args": [
                        {
                            "desc": "The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                            "finish": [
                                202,
                                37
                            ],
                            "name": "seed",
                            "rawdesc": "The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                            "start": [
                                202,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)\n\n\n---\n\n@*param* `seed` — The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                    "finish": [
                        202,
                        42
                    ],
                    "rawdesc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)",
                    "start": [
                        202,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.setRandomSeed(seed: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    202,
                    32
                ],
                "name": "setRandomSeed",
                "rawdesc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)",
                "start": [
                    202,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)\n\n@*param* `state` — The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                            "finish": [
                                213,
                                39
                            ],
                            "name": "state",
                            "rawdesc": "The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                            "start": [
                                213,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)\n\n@*param* `state` — The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                    "finish": [
                        213,
                        44
                    ],
                    "rawdesc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)",
                    "start": [
                        213,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.setRandomState(state: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    213,
                    33
                ],
                "name": "setRandomState",
                "rawdesc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)",
                "start": [
                    213,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)\n\n\n---\n\n@*param* `polygon` — Polygon to triangulate. Must not intersect itself.\n\n@*return* `triangles` — List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                "extends": {
                    "args": [
                        {
                            "desc": "Polygon to triangulate. Must not intersect itself.",
                            "finish": [
                                224,
                                38
                            ],
                            "name": "polygon",
                            "rawdesc": "Polygon to triangulate. Must not intersect itself.",
                            "start": [
                                224,
                                31
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)\n\n\n---\n\n@*param* `polygon` — Polygon to triangulate. Must not intersect itself.\n\n@*return* `triangles` — List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                    "finish": [
                        224,
                        43
                    ],
                    "rawdesc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)",
                    "returns": [
                        {
                            "desc": "List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                            "name": "triangles",
                            "rawdesc": "List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        224,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.triangulate(polygon: table)\n  -> triangles: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    224,
                    30
                ],
                "name": "triangulate",
                "rawdesc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)",
                "start": [
                    224,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math",
        "type": "type",
        "view": "love.math"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)\n\n@*param* `rb` — Red color component in 0..255 range.\n\n@*param* `gb` — Green color component in 0..255 range.\n\n@*param* `bb` — Blue color component in 0..255 range.\n\n@*param* `ab` — Alpha color component in 0..255 range.\n\n@*return* `r` — Red color component in 0..1 range.\n\n@*return* `g` — Green color component in 0..1 range.\n\n@*return* `b` — Blue color component in 0..1 range.\n\n@*return* `a` — Alpha color component in 0..1 range or nil if alpha is not specified.",
                "extends": {
                    "args": [
                        {
                            "desc": "Red color component in 0..255 range.",
                            "finish": [
                                25,
                                36
                            ],
                            "name": "rb",
                            "rawdesc": "Red color component in 0..255 range.",
                            "start": [
                                25,
                                34
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component in 0..255 range.",
                            "finish": [
                                25,
                                40
                            ],
                            "name": "gb",
                            "rawdesc": "Green color component in 0..255 range.",
                            "start": [
                                25,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component in 0..255 range.",
                            "finish": [
                                25,
                                44
                            ],
                            "name": "bb",
                            "rawdesc": "Blue color component in 0..255 range.",
                            "start": [
                                25,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component in 0..255 range.",
                            "finish": [
                                25,
                                48
                            ],
                            "name": "ab",
                            "rawdesc": "Alpha color component in 0..255 range.",
                            "start": [
                                25,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)\n\n@*param* `rb` — Red color component in 0..255 range.\n\n@*param* `gb` — Green color component in 0..255 range.\n\n@*param* `bb` — Blue color component in 0..255 range.\n\n@*param* `ab` — Alpha color component in 0..255 range.\n\n@*return* `r` — Red color component in 0..1 range.\n\n@*return* `g` — Green color component in 0..1 range.\n\n@*return* `b` — Blue color component in 0..1 range.\n\n@*return* `a` — Alpha color component in 0..1 range or nil if alpha is not specified.",
                    "finish": [
                        25,
                        53
                    ],
                    "rawdesc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)",
                    "returns": [
                        {
                            "desc": "Red color component in 0..1 range.",
                            "name": "r",
                            "rawdesc": "Red color component in 0..1 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component in 0..1 range.",
                            "name": "g",
                            "rawdesc": "Green color component in 0..1 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component in 0..1 range.",
                            "name": "b",
                            "rawdesc": "Blue color component in 0..1 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component in 0..1 range or nil if alpha is not specified.",
                            "name": "a",
                            "rawdesc": "Alpha color component in 0..1 range or nil if alpha is not specified.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        25,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.colorFromBytes(rb: number, gb: number, bb: number, ab?: number)\n  -> r: number\n  2. g: number\n  3. b: number\n  4. a: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    25,
                    33
                ],
                "name": "colorFromBytes",
                "rawdesc": "\nConverts a color from 0..255 to 0..1 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorFromBytes)",
                "start": [
                    25,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.colorFromBytes",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)\n\n@*param* `r` — Red color component.\n\n@*param* `g` — Green color component.\n\n@*param* `b` — Blue color component.\n\n@*param* `a` — Alpha color component.\n\n@*return* `rb` — Red color component in 0..255 range.\n\n@*return* `gb` — Green color component in 0..255 range.\n\n@*return* `bb` — Blue color component in 0..255 range.\n\n@*return* `ab` — Alpha color component in 0..255 range or nil if alpha is not specified.",
                "extends": {
                    "args": [
                        {
                            "desc": "Red color component.",
                            "finish": [
                                41,
                                33
                            ],
                            "name": "r",
                            "rawdesc": "Red color component.",
                            "start": [
                                41,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component.",
                            "finish": [
                                41,
                                36
                            ],
                            "name": "g",
                            "rawdesc": "Green color component.",
                            "start": [
                                41,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component.",
                            "finish": [
                                41,
                                39
                            ],
                            "name": "b",
                            "rawdesc": "Blue color component.",
                            "start": [
                                41,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component.",
                            "finish": [
                                41,
                                42
                            ],
                            "name": "a",
                            "rawdesc": "Alpha color component.",
                            "start": [
                                41,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)\n\n@*param* `r` — Red color component.\n\n@*param* `g` — Green color component.\n\n@*param* `b` — Blue color component.\n\n@*param* `a` — Alpha color component.\n\n@*return* `rb` — Red color component in 0..255 range.\n\n@*return* `gb` — Green color component in 0..255 range.\n\n@*return* `bb` — Blue color component in 0..255 range.\n\n@*return* `ab` — Alpha color component in 0..255 range or nil if alpha is not specified.",
                    "finish": [
                        41,
                        47
                    ],
                    "rawdesc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)",
                    "returns": [
                        {
                            "desc": "Red color component in 0..255 range.",
                            "name": "rb",
                            "rawdesc": "Red color component in 0..255 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Green color component in 0..255 range.",
                            "name": "gb",
                            "rawdesc": "Green color component in 0..255 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Blue color component in 0..255 range.",
                            "name": "bb",
                            "rawdesc": "Blue color component in 0..255 range.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Alpha color component in 0..255 range or nil if alpha is not specified.",
                            "name": "ab",
                            "rawdesc": "Alpha color component in 0..255 range or nil if alpha is not specified.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.colorToBytes(r: number, g: number, b: number, a?: number)\n  -> rb: number\n  2. gb: number\n  3. bb: number\n  4. ab: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    41,
                    31
                ],
                "name": "colorToBytes",
                "rawdesc": "\nConverts a color from 0..1 to 0..255 range.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.colorToBytes)",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.colorToBytes",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)\n\n\n---\n\n@*param* `r` — The red channel of the sRGB color to convert.\n\n@*param* `g` — The green channel of the sRGB color to convert.\n\n@*param* `b` — The blue channel of the sRGB color to convert.\n\n@*return* `lr` — The red channel of the converted color in linear RGB space.\n\n@*return* `lg` — The green channel of the converted color in linear RGB space.\n\n@*return* `lb` — The blue channel of the converted color in linear RGB space.",
                "extends": {
                    "args": [
                        {
                            "desc": "The red channel of the sRGB color to convert.",
                            "finish": [
                                61,
                                34
                            ],
                            "name": "r",
                            "rawdesc": "The red channel of the sRGB color to convert.",
                            "start": [
                                61,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the sRGB color to convert.",
                            "finish": [
                                61,
                                37
                            ],
                            "name": "g",
                            "rawdesc": "The green channel of the sRGB color to convert.",
                            "start": [
                                61,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the sRGB color to convert.",
                            "finish": [
                                61,
                                40
                            ],
                            "name": "b",
                            "rawdesc": "The blue channel of the sRGB color to convert.",
                            "start": [
                                61,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)\n\n\n---\n\n@*param* `r` — The red channel of the sRGB color to convert.\n\n@*param* `g` — The green channel of the sRGB color to convert.\n\n@*param* `b` — The blue channel of the sRGB color to convert.\n\n@*return* `lr` — The red channel of the converted color in linear RGB space.\n\n@*return* `lg` — The green channel of the converted color in linear RGB space.\n\n@*return* `lb` — The blue channel of the converted color in linear RGB space.",
                    "finish": [
                        61,
                        45
                    ],
                    "rawdesc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)",
                    "returns": [
                        {
                            "desc": "The red channel of the converted color in linear RGB space.",
                            "name": "lr",
                            "rawdesc": "The red channel of the converted color in linear RGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the converted color in linear RGB space.",
                            "name": "lg",
                            "rawdesc": "The green channel of the converted color in linear RGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the converted color in linear RGB space.",
                            "name": "lb",
                            "rawdesc": "The blue channel of the converted color in linear RGB space.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.gammaToLinear(r: number, g: number, b: number)\n  -> lr: number\n  2. lg: number\n  3. lb: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    61,
                    32
                ],
                "name": "gammaToLinear",
                "rawdesc": "\nConverts a color from gamma-space (sRGB) to linear-space (RGB). This is useful when doing gamma-correct rendering and you need to do math in linear RGB in the few cases where LÖVE doesn't handle conversions automatically.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.gammaToLinear)",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.gammaToLinear",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)\n\n@*return* `low` — Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.\n\n@*return* `high` — Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)\n\n@*return* `low` — Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.\n\n@*return* `high` — Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                    "finish": [
                        73,
                        38
                    ],
                    "rawdesc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)",
                    "returns": [
                        {
                            "desc": "Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.",
                            "name": "low",
                            "rawdesc": "Integer number representing the lower 32 bits of the random number generator's 64 bit seed value.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                            "name": "high",
                            "rawdesc": "Integer number representing the higher 32 bits of the random number generator's 64 bit seed value.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.getRandomSeed()\n  -> low: number\n  2. high: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    73,
                    32
                ],
                "name": "getRandomSeed",
                "rawdesc": "\nGets the seed of the random number generator.\n\nThe seed is split into two numbers due to Lua's use of doubles for all number values - doubles can't accurately represent integer  values above 2^53, but the seed can be an integer value up to 2^64.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomSeed)",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.getRandomSeed",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)\n\n@*return* `state` — The current state of the random number generator, represented as a string.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)\n\n@*return* `state` — The current state of the random number generator, represented as a string.",
                    "finish": [
                        84,
                        39
                    ],
                    "rawdesc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)",
                    "returns": [
                        {
                            "desc": "The current state of the random number generator, represented as a string.",
                            "name": "state",
                            "rawdesc": "The current state of the random number generator, represented as a string.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        84,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.getRandomState()\n  -> state: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    84,
                    33
                ],
                "name": "getRandomState",
                "rawdesc": "\nGets the current state of the random number generator. This returns an opaque implementation-dependent string which is only useful for later use with love.math.setRandomState or RandomGenerator:setState.\n\nThis is different from love.math.getRandomSeed in that getRandomState gets the random number generator's current state, whereas getRandomSeed gets the previously set seed number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.getRandomState)",
                "start": [
                    84,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.getRandomState",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)\n\n\n---\n\n@*param* `vertices` — The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `convex` — Whether the given polygon is convex.",
                "extends": {
                    "args": [
                        {
                            "desc": "The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "finish": [
                                97,
                                36
                            ],
                            "name": "vertices",
                            "rawdesc": "The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "start": [
                                97,
                                28
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)\n\n\n---\n\n@*param* `vertices` — The vertices of the polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `convex` — Whether the given polygon is convex.",
                    "finish": [
                        97,
                        41
                    ],
                    "rawdesc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)",
                    "returns": [
                        {
                            "desc": "Whether the given polygon is convex.",
                            "name": "convex",
                            "rawdesc": "Whether the given polygon is convex.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        97,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.isConvex(vertices: table)\n  -> convex: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    97,
                    27
                ],
                "name": "isConvex",
                "rawdesc": "\nChecks whether a polygon is convex.\n\nPolygonShapes in love.physics, some forms of Meshes, and polygons drawn with love.graphics.polygon must be simple convex polygons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.isConvex)",
                "start": [
                    97,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.isConvex",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)\n\n\n---\n\n@*param* `lr` — The red channel of the linear RGB color to convert.\n\n@*param* `lg` — The green channel of the linear RGB color to convert.\n\n@*param* `lb` — The blue channel of the linear RGB color to convert.\n\n@*return* `cr` — The red channel of the converted color in gamma sRGB space.\n\n@*return* `cg` — The green channel of the converted color in gamma sRGB space.\n\n@*return* `cb` — The blue channel of the converted color in gamma sRGB space.",
                "extends": {
                    "args": [
                        {
                            "desc": "The red channel of the linear RGB color to convert.",
                            "finish": [
                                119,
                                35
                            ],
                            "name": "lr",
                            "rawdesc": "The red channel of the linear RGB color to convert.",
                            "start": [
                                119,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the linear RGB color to convert.",
                            "finish": [
                                119,
                                39
                            ],
                            "name": "lg",
                            "rawdesc": "The green channel of the linear RGB color to convert.",
                            "start": [
                                119,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the linear RGB color to convert.",
                            "finish": [
                                119,
                                43
                            ],
                            "name": "lb",
                            "rawdesc": "The blue channel of the linear RGB color to convert.",
                            "start": [
                                119,
                                41
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)\n\n\n---\n\n@*param* `lr` — The red channel of the linear RGB color to convert.\n\n@*param* `lg` — The green channel of the linear RGB color to convert.\n\n@*param* `lb` — The blue channel of the linear RGB color to convert.\n\n@*return* `cr` — The red channel of the converted color in gamma sRGB space.\n\n@*return* `cg` — The green channel of the converted color in gamma sRGB space.\n\n@*return* `cb` — The blue channel of the converted color in gamma sRGB space.",
                    "finish": [
                        119,
                        48
                    ],
                    "rawdesc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)",
                    "returns": [
                        {
                            "desc": "The red channel of the converted color in gamma sRGB space.",
                            "name": "cr",
                            "rawdesc": "The red channel of the converted color in gamma sRGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The green channel of the converted color in gamma sRGB space.",
                            "name": "cg",
                            "rawdesc": "The green channel of the converted color in gamma sRGB space.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The blue channel of the converted color in gamma sRGB space.",
                            "name": "cb",
                            "rawdesc": "The blue channel of the converted color in gamma sRGB space.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        119,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.linearToGamma(lr: number, lg: number, lb: number)\n  -> cr: number\n  2. cg: number\n  3. cb: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    119,
                    32
                ],
                "name": "linearToGamma",
                "rawdesc": "\nConverts a color from linear-space (RGB) to gamma-space (sRGB). This is useful when storing linear RGB color values in an image, because the linear RGB color space has less precision than sRGB for dark colors, which can result in noticeable color banding when drawing.\n\nIn general, colors chosen based on what they look like on-screen are already in gamma-space and should not be double-converted. Colors calculated using math are often in the linear RGB space.\n\nRead more about gamma-correct rendering here, here, and here.\n\nIn versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.linearToGamma)",
                "start": [
                    119,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.linearToGamma",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)\n\n\n---\n\n@*param* `vertices` — The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `curve` — A Bézier curve object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "finish": [
                                132,
                                42
                            ],
                            "name": "vertices",
                            "rawdesc": "The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.",
                            "start": [
                                132,
                                34
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)\n\n\n---\n\n@*param* `vertices` — The vertices of the control polygon as a table in the form of {x1, y1, x2, y2, x3, y3, ...}.\n\n@*return* `curve` — A Bézier curve object.",
                    "finish": [
                        132,
                        47
                    ],
                    "rawdesc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)",
                    "returns": [
                        {
                            "desc": "A Bézier curve object.",
                            "name": "curve",
                            "rawdesc": "A Bézier curve object.",
                            "type": "function.return",
                            "view": "love.BezierCurve"
                        }
                    ],
                    "start": [
                        132,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.newBezierCurve(vertices: table)\n  -> curve: love.BezierCurve"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    132,
                    33
                ],
                "name": "newBezierCurve",
                "rawdesc": "\nCreates a new BezierCurve object.\n\nThe number of vertices in the control polygon determines the degree of the curve, e.g. three vertices define a quadratic (degree 2) Bézier curve, four vertices define a cubic (degree 3) Bézier curve, etc.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newBezierCurve)",
                "start": [
                    132,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.newBezierCurve",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)\n\n\n---\n\n@*return* `rng` — The new Random Number Generator object.",
                "extends": {
                    "args": [],
                    "desc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)\n\n\n---\n\n@*return* `rng` — The new Random Number Generator object.",
                    "finish": [
                        143,
                        43
                    ],
                    "rawdesc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)",
                    "returns": [
                        {
                            "desc": "The new Random Number Generator object.",
                            "name": "rng",
                            "rawdesc": "The new Random Number Generator object.",
                            "type": "function.return",
                            "view": "love.RandomGenerator"
                        }
                    ],
                    "start": [
                        143,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.newRandomGenerator()\n  -> rng: love.RandomGenerator"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    143,
                    37
                ],
                "name": "newRandomGenerator",
                "rawdesc": "\nCreates a new RandomGenerator object which is completely independent of other RandomGenerator objects and random functions.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newRandomGenerator)",
                "start": [
                    143,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.newRandomGenerator",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)\n\n\n---\n\n@*return* `transform` — The new Transform object.",
                "extends": {
                    "args": [],
                    "desc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)\n\n\n---\n\n@*return* `transform` — The new Transform object.",
                    "finish": [
                        153,
                        37
                    ],
                    "rawdesc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)",
                    "returns": [
                        {
                            "desc": "The new Transform object.",
                            "name": "transform",
                            "rawdesc": "The new Transform object.",
                            "type": "function.return",
                            "view": "love.Transform"
                        }
                    ],
                    "start": [
                        153,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.newTransform()\n  -> transform: love.Transform"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    153,
                    31
                ],
                "name": "newTransform",
                "rawdesc": "\nCreates a new Transform object.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.newTransform)",
                "start": [
                    153,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.newTransform",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)\n\n\n---\n\n@*param* `x` — The number used to generate the noise value.\n\n@*return* `value` — The noise value in the range of 1.",
                "extends": {
                    "args": [
                        {
                            "desc": "The number used to generate the noise value.",
                            "finish": [
                                170,
                                26
                            ],
                            "name": "x",
                            "rawdesc": "The number used to generate the noise value.",
                            "start": [
                                170,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)\n\n\n---\n\n@*param* `x` — The number used to generate the noise value.\n\n@*return* `value` — The noise value in the range of 1.",
                    "finish": [
                        170,
                        31
                    ],
                    "rawdesc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)",
                    "returns": [
                        {
                            "desc": "The noise value in the range of 1.",
                            "name": "value",
                            "rawdesc": "The noise value in the range of 1.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        170,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.noise(x: number)\n  -> value: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    170,
                    24
                ],
                "name": "noise",
                "rawdesc": "\nGenerates a Simplex or Perlin noise value in 1-4 dimensions. The return value will always be the same, given the same arguments.\n\nSimplex noise is closely related to Perlin noise. It is widely used for procedural content generation.\n\nThere are many webpages which discuss Perlin and Simplex noise in detail.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.noise)",
                "start": [
                    170,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.noise",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)\n\n\n---\n\n@*return* `number` — The pseudo-random number.",
                "extends": {
                    "args": [],
                    "desc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)\n\n\n---\n\n@*return* `number` — The pseudo-random number.",
                    "finish": [
                        181,
                        31
                    ],
                    "rawdesc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)",
                    "returns": [
                        {
                            "desc": "The pseudo-random number.",
                            "name": "number",
                            "rawdesc": "The pseudo-random number.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.random()\n  -> number: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    181,
                    25
                ],
                "name": "random",
                "rawdesc": "\nGenerates a pseudo-random number in a platform independent manner. The default love.run seeds this function at startup, so you generally don't need to seed it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.random)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.random",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)\n\n@*param* `stddev` — Standard deviation of the distribution.\n\n@*param* `mean` — The mean of the distribution.\n\n@*return* `number` — Normally distributed random number with variance (stddev)² and the specified mean.",
                "extends": {
                    "args": [
                        {
                            "desc": "Standard deviation of the distribution.",
                            "finish": [
                                192,
                                38
                            ],
                            "name": "stddev",
                            "rawdesc": "Standard deviation of the distribution.",
                            "start": [
                                192,
                                32
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The mean of the distribution.",
                            "finish": [
                                192,
                                44
                            ],
                            "name": "mean",
                            "rawdesc": "The mean of the distribution.",
                            "start": [
                                192,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)\n\n@*param* `stddev` — Standard deviation of the distribution.\n\n@*param* `mean` — The mean of the distribution.\n\n@*return* `number` — Normally distributed random number with variance (stddev)² and the specified mean.",
                    "finish": [
                        192,
                        49
                    ],
                    "rawdesc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)",
                    "returns": [
                        {
                            "desc": "Normally distributed random number with variance (stddev)² and the specified mean.",
                            "name": "number",
                            "rawdesc": "Normally distributed random number with variance (stddev)² and the specified mean.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        192,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.randomNormal(stddev?: number, mean?: number)\n  -> number: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    192,
                    31
                ],
                "name": "randomNormal",
                "rawdesc": "\nGet a normally distributed pseudo random number.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.randomNormal)",
                "start": [
                    192,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.randomNormal",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)\n\n\n---\n\n@*param* `seed` — The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                "extends": {
                    "args": [
                        {
                            "desc": "The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                            "finish": [
                                202,
                                37
                            ],
                            "name": "seed",
                            "rawdesc": "The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                            "start": [
                                202,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)\n\n\n---\n\n@*param* `seed` — The integer number with which you want to seed the randomization. Must be within the range of 2^53 - 1.",
                    "finish": [
                        202,
                        42
                    ],
                    "rawdesc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)",
                    "start": [
                        202,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.setRandomSeed(seed: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    202,
                    32
                ],
                "name": "setRandomSeed",
                "rawdesc": "\nSets the seed of the random number generator using the specified integer number. This is called internally at startup, so you generally don't need to call it yourself.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomSeed)",
                "start": [
                    202,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.setRandomSeed",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)\n\n@*param* `state` — The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                            "finish": [
                                213,
                                39
                            ],
                            "name": "state",
                            "rawdesc": "The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                            "start": [
                                213,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)\n\n@*param* `state` — The new state of the random number generator, represented as a string. This should originate from a previous call to love.math.getRandomState.",
                    "finish": [
                        213,
                        44
                    ],
                    "rawdesc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)",
                    "start": [
                        213,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.setRandomState(state: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    213,
                    33
                ],
                "name": "setRandomState",
                "rawdesc": "\nSets the current state of the random number generator. The value used as an argument for this function is an opaque implementation-dependent string and should only originate from a previous call to love.math.getRandomState.\n\nThis is different from love.math.setRandomSeed in that setRandomState directly sets the random number generator's current implementation-dependent state, whereas setRandomSeed gives it a new seed value.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.setRandomState)",
                "start": [
                    213,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.setRandomState",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)\n\n\n---\n\n@*param* `polygon` — Polygon to triangulate. Must not intersect itself.\n\n@*return* `triangles` — List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                "extends": {
                    "args": [
                        {
                            "desc": "Polygon to triangulate. Must not intersect itself.",
                            "finish": [
                                224,
                                38
                            ],
                            "name": "polygon",
                            "rawdesc": "Polygon to triangulate. Must not intersect itself.",
                            "start": [
                                224,
                                31
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)\n\n\n---\n\n@*param* `polygon` — Polygon to triangulate. Must not intersect itself.\n\n@*return* `triangles` — List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                    "finish": [
                        224,
                        43
                    ],
                    "rawdesc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)",
                    "returns": [
                        {
                            "desc": "List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                            "name": "triangles",
                            "rawdesc": "List of triangles the polygon is composed of, in the form of {{x1, y1, x2, y2, x3, y3},  {x1, y1, x2, y2, x3, y3}, ...}.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        224,
                        0
                    ],
                    "type": "function",
                    "view": "function love.math.triangulate(polygon: table)\n  -> triangles: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/math.lua",
                "finish": [
                    224,
                    30
                ],
                "name": "triangulate",
                "rawdesc": "\nDecomposes a simple convex or concave polygon into triangles.\n\n\n[Open in Browser](https://love2d.org/wiki/love.math.triangulate)",
                "start": [
                    224,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.math.triangulate",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.mouse"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "mouse",
                "rawdesc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.mouse",
                "visible": "public"
            }
        ],
        "name": "love.mouse",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nProvides an interface to the user's mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.mouse",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)\n\n@*return* `cursor` — The current cursor, or nil if no cursor is set.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)\n\n@*return* `cursor` — The current cursor, or nil if no cursor is set.",
                    "finish": [
                        18,
                        35
                    ],
                    "rawdesc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)",
                    "returns": [
                        {
                            "desc": "The current cursor, or nil if no cursor is set.",
                            "name": "cursor",
                            "rawdesc": "The current cursor, or nil if no cursor is set.",
                            "type": "function.return",
                            "view": "love.Cursor"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getCursor()\n  -> cursor: love.Cursor"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    18,
                    29
                ],
                "name": "getCursor",
                "rawdesc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)\n\n@*return* `x` — The position of the mouse along the x-axis.\n\n@*return* `y` — The position of the mouse along the y-axis.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)\n\n@*return* `x` — The position of the mouse along the x-axis.\n\n@*return* `y` — The position of the mouse along the y-axis.",
                    "finish": [
                        28,
                        37
                    ],
                    "rawdesc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)",
                    "returns": [
                        {
                            "desc": "The position of the mouse along the x-axis.",
                            "name": "x",
                            "rawdesc": "The position of the mouse along the x-axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the mouse along the y-axis.",
                            "name": "y",
                            "rawdesc": "The position of the mouse along the y-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        28,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getPosition()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    28,
                    31
                ],
                "name": "getPosition",
                "rawdesc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)",
                "start": [
                    28,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)\n\n@*return* `enabled` — True if relative mode is enabled, false if it's disabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)\n\n@*return* `enabled` — True if relative mode is enabled, false if it's disabled.",
                    "finish": [
                        41,
                        41
                    ],
                    "rawdesc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)",
                    "returns": [
                        {
                            "desc": "True if relative mode is enabled, false if it's disabled.",
                            "name": "enabled",
                            "rawdesc": "True if relative mode is enabled, false if it's disabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getRelativeMode()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    41,
                    35
                ],
                "name": "getRelativeMode",
                "rawdesc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n@*param* `ctype` — The type of system cursor to get.\n\n@*return* `cursor` — The Cursor object representing the system cursor type.\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The type of system cursor to get.",
                            "finish": [
                                53,
                                41
                            ],
                            "name": "ctype",
                            "rawdesc": "The type of system cursor to get.",
                            "start": [
                                53,
                                36
                            ],
                            "type": "local",
                            "view": "\"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8)"
                        }
                    ],
                    "desc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n@*param* `ctype` — The type of system cursor to get.\n\n@*return* `cursor` — The Cursor object representing the system cursor type.\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                    "finish": [
                        53,
                        46
                    ],
                    "rawdesc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                    "returns": [
                        {
                            "desc": "The Cursor object representing the system cursor type.",
                            "name": "cursor",
                            "rawdesc": "The Cursor object representing the system cursor type.",
                            "type": "function.return",
                            "view": "love.Cursor"
                        }
                    ],
                    "start": [
                        53,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getSystemCursor(ctype: \"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8))\n  -> cursor: love.Cursor"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    53,
                    35
                ],
                "name": "getSystemCursor",
                "rawdesc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "start": [
                    53,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)\n\n@*return* `x` — The position of the mouse along the x-axis.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)\n\n@*return* `x` — The position of the mouse along the x-axis.",
                    "finish": [
                        62,
                        30
                    ],
                    "rawdesc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)",
                    "returns": [
                        {
                            "desc": "The position of the mouse along the x-axis.",
                            "name": "x",
                            "rawdesc": "The position of the mouse along the x-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        62,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getX()\n  -> x: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    62,
                    24
                ],
                "name": "getX",
                "rawdesc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)",
                "start": [
                    62,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)\n\n@*return* `y` — The position of the mouse along the y-axis.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)\n\n@*return* `y` — The position of the mouse along the y-axis.",
                    "finish": [
                        71,
                        30
                    ],
                    "rawdesc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)",
                    "returns": [
                        {
                            "desc": "The position of the mouse along the y-axis.",
                            "name": "y",
                            "rawdesc": "The position of the mouse along the y-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        71,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getY()\n  -> y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    71,
                    24
                ],
                "name": "getY",
                "rawdesc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)",
                "start": [
                    71,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)\n\n@*return* `supported` — Whether the system has cursor functionality.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)\n\n@*return* `supported` — Whether the system has cursor functionality.",
                    "finish": [
                        82,
                        43
                    ],
                    "rawdesc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)",
                    "returns": [
                        {
                            "desc": "Whether the system has cursor functionality.",
                            "name": "supported",
                            "rawdesc": "Whether the system has cursor functionality.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        82,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isCursorSupported()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    82,
                    37
                ],
                "name": "isCursorSupported",
                "rawdesc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)",
                "start": [
                    82,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)\n\n@*param* `button` — The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.\n\n@*return* `down` — True if any specified button is down.",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.",
                            "finish": [
                                95,
                                33
                            ],
                            "name": "button",
                            "rawdesc": "The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.",
                            "start": [
                                95,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                95,
                                38
                            ],
                            "start": [
                                95,
                                35
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)\n\n@*param* `button` — The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.\n\n@*return* `down` — True if any specified button is down.",
                    "finish": [
                        95,
                        43
                    ],
                    "rawdesc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)",
                    "returns": [
                        {
                            "desc": "True if any specified button is down.",
                            "name": "down",
                            "rawdesc": "True if any specified button is down.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        95,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isDown(button: number, ...number)\n  -> down: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    95,
                    26
                ],
                "name": "isDown",
                "rawdesc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)",
                "start": [
                    95,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)\n\n@*return* `grabbed` — True if the cursor is grabbed, false if it is not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)\n\n@*return* `grabbed` — True if the cursor is grabbed, false if it is not.",
                    "finish": [
                        104,
                        35
                    ],
                    "rawdesc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)",
                    "returns": [
                        {
                            "desc": "True if the cursor is grabbed, false if it is not.",
                            "name": "grabbed",
                            "rawdesc": "True if the cursor is grabbed, false if it is not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isGrabbed()\n  -> grabbed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    104,
                    29
                ],
                "name": "isGrabbed",
                "rawdesc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)\n\n@*return* `visible` — True if the cursor to visible, false if the cursor is hidden.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)\n\n@*return* `visible` — True if the cursor to visible, false if the cursor is hidden.",
                    "finish": [
                        113,
                        35
                    ],
                    "rawdesc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)",
                    "returns": [
                        {
                            "desc": "True if the cursor to visible, false if the cursor is hidden.",
                            "name": "visible",
                            "rawdesc": "True if the cursor to visible, false if the cursor is hidden.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        113,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isVisible()\n  -> visible: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    113,
                    29
                ],
                "name": "isVisible",
                "rawdesc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)",
                "start": [
                    113,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)\n\n\n---\n\n@*param* `imageData` — The ImageData to use for the new Cursor.\n\n@*param* `hotx` — The x-coordinate in the ImageData of the cursor's hot spot.\n\n@*param* `hoty` — The y-coordinate in the ImageData of the cursor's hot spot.\n\n@*return* `cursor` — The new Cursor object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The ImageData to use for the new Cursor.",
                            "finish": [
                                131,
                                39
                            ],
                            "name": "imageData",
                            "rawdesc": "The ImageData to use for the new Cursor.",
                            "start": [
                                131,
                                30
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The x-coordinate in the ImageData of the cursor's hot spot.",
                            "finish": [
                                131,
                                45
                            ],
                            "name": "hotx",
                            "rawdesc": "The x-coordinate in the ImageData of the cursor's hot spot.",
                            "start": [
                                131,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y-coordinate in the ImageData of the cursor's hot spot.",
                            "finish": [
                                131,
                                51
                            ],
                            "name": "hoty",
                            "rawdesc": "The y-coordinate in the ImageData of the cursor's hot spot.",
                            "start": [
                                131,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)\n\n\n---\n\n@*param* `imageData` — The ImageData to use for the new Cursor.\n\n@*param* `hotx` — The x-coordinate in the ImageData of the cursor's hot spot.\n\n@*param* `hoty` — The y-coordinate in the ImageData of the cursor's hot spot.\n\n@*return* `cursor` — The new Cursor object.",
                    "finish": [
                        131,
                        56
                    ],
                    "rawdesc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)",
                    "returns": [
                        {
                            "desc": "The new Cursor object.",
                            "name": "cursor",
                            "rawdesc": "The new Cursor object.",
                            "type": "function.return",
                            "view": "love.Cursor"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.newCursor(imageData: love.ImageData, hotx?: number, hoty?: number)\n  -> cursor: love.Cursor"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    131,
                    29
                ],
                "name": "newCursor",
                "rawdesc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)",
                "start": [
                    131,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)\n\n\n---\n\n@*param* `cursor` — The Cursor object to use as the current mouse cursor.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Cursor object to use as the current mouse cursor.",
                            "finish": [
                                141,
                                36
                            ],
                            "name": "cursor",
                            "rawdesc": "The Cursor object to use as the current mouse cursor.",
                            "start": [
                                141,
                                30
                            ],
                            "type": "local",
                            "view": "love.Cursor"
                        }
                    ],
                    "desc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)\n\n\n---\n\n@*param* `cursor` — The Cursor object to use as the current mouse cursor.",
                    "finish": [
                        141,
                        41
                    ],
                    "rawdesc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)",
                    "start": [
                        141,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setCursor(cursor: love.Cursor)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    141,
                    29
                ],
                "name": "setCursor",
                "rawdesc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)",
                "start": [
                    141,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)\n\n@*param* `grab` — True to confine the mouse, false to let it leave the window.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to confine the mouse, false to let it leave the window.",
                            "finish": [
                                150,
                                35
                            ],
                            "name": "grab",
                            "rawdesc": "True to confine the mouse, false to let it leave the window.",
                            "start": [
                                150,
                                31
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)\n\n@*param* `grab` — True to confine the mouse, false to let it leave the window.",
                    "finish": [
                        150,
                        40
                    ],
                    "rawdesc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)",
                    "start": [
                        150,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setGrabbed(grab: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    150,
                    30
                ],
                "name": "setGrabbed",
                "rawdesc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)",
                "start": [
                    150,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)\n\n@*param* `x` — The new position of the mouse along the x-axis.\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new position of the mouse along the x-axis.",
                            "finish": [
                                160,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The new position of the mouse along the x-axis.",
                            "start": [
                                160,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The new position of the mouse along the y-axis.",
                            "finish": [
                                160,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The new position of the mouse along the y-axis.",
                            "start": [
                                160,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)\n\n@*param* `x` — The new position of the mouse along the x-axis.\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                    "finish": [
                        160,
                        41
                    ],
                    "rawdesc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)",
                    "start": [
                        160,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setPosition(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    160,
                    31
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)",
                "start": [
                    160,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)\n\n@*param* `enable` — True to enable relative mode, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable relative mode, false to disable it.",
                            "finish": [
                                173,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable relative mode, false to disable it.",
                            "start": [
                                173,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)\n\n@*param* `enable` — True to enable relative mode, false to disable it.",
                    "finish": [
                        173,
                        47
                    ],
                    "rawdesc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)",
                    "start": [
                        173,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setRelativeMode(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    173,
                    35
                ],
                "name": "setRelativeMode",
                "rawdesc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)",
                "start": [
                    173,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)\n\n@*param* `visible` — True to set the cursor to visible, false to hide the cursor.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to set the cursor to visible, false to hide the cursor.",
                            "finish": [
                                182,
                                38
                            ],
                            "name": "visible",
                            "rawdesc": "True to set the cursor to visible, false to hide the cursor.",
                            "start": [
                                182,
                                31
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)\n\n@*param* `visible` — True to set the cursor to visible, false to hide the cursor.",
                    "finish": [
                        182,
                        43
                    ],
                    "rawdesc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)",
                    "start": [
                        182,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setVisible(visible: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    182,
                    30
                ],
                "name": "setVisible",
                "rawdesc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)",
                "start": [
                    182,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)\n\n@*param* `x` — The new position of the mouse along the x-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new position of the mouse along the x-axis.",
                            "finish": [
                                193,
                                26
                            ],
                            "name": "x",
                            "rawdesc": "The new position of the mouse along the x-axis.",
                            "start": [
                                193,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)\n\n@*param* `x` — The new position of the mouse along the x-axis.",
                    "finish": [
                        193,
                        31
                    ],
                    "rawdesc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)",
                    "start": [
                        193,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setX(x: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    193,
                    24
                ],
                "name": "setX",
                "rawdesc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)",
                "start": [
                    193,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new position of the mouse along the y-axis.",
                            "finish": [
                                204,
                                26
                            ],
                            "name": "y",
                            "rawdesc": "The new position of the mouse along the y-axis.",
                            "start": [
                                204,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                    "finish": [
                        204,
                        31
                    ],
                    "rawdesc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)",
                    "start": [
                        204,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setY(y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    204,
                    24
                ],
                "name": "setY",
                "rawdesc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)",
                "start": [
                    204,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse",
        "type": "type",
        "view": "love.mouse"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)\n\n@*return* `cursor` — The current cursor, or nil if no cursor is set.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)\n\n@*return* `cursor` — The current cursor, or nil if no cursor is set.",
                    "finish": [
                        18,
                        35
                    ],
                    "rawdesc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)",
                    "returns": [
                        {
                            "desc": "The current cursor, or nil if no cursor is set.",
                            "name": "cursor",
                            "rawdesc": "The current cursor, or nil if no cursor is set.",
                            "type": "function.return",
                            "view": "love.Cursor"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getCursor()\n  -> cursor: love.Cursor"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    18,
                    29
                ],
                "name": "getCursor",
                "rawdesc": "\nGets the current Cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getCursor)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.getCursor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)\n\n@*return* `x` — The position of the mouse along the x-axis.\n\n@*return* `y` — The position of the mouse along the y-axis.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)\n\n@*return* `x` — The position of the mouse along the x-axis.\n\n@*return* `y` — The position of the mouse along the y-axis.",
                    "finish": [
                        28,
                        37
                    ],
                    "rawdesc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)",
                    "returns": [
                        {
                            "desc": "The position of the mouse along the x-axis.",
                            "name": "x",
                            "rawdesc": "The position of the mouse along the x-axis.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position of the mouse along the y-axis.",
                            "name": "y",
                            "rawdesc": "The position of the mouse along the y-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        28,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getPosition()\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    28,
                    31
                ],
                "name": "getPosition",
                "rawdesc": "\nReturns the current position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getPosition)",
                "start": [
                    28,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.getPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)\n\n@*return* `enabled` — True if relative mode is enabled, false if it's disabled.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)\n\n@*return* `enabled` — True if relative mode is enabled, false if it's disabled.",
                    "finish": [
                        41,
                        41
                    ],
                    "rawdesc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)",
                    "returns": [
                        {
                            "desc": "True if relative mode is enabled, false if it's disabled.",
                            "name": "enabled",
                            "rawdesc": "True if relative mode is enabled, false if it's disabled.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getRelativeMode()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    41,
                    35
                ],
                "name": "getRelativeMode",
                "rawdesc": "\nGets whether relative mode is enabled for the mouse.\n\nIf relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse is not updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getRelativeMode)",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.getRelativeMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n@*param* `ctype` — The type of system cursor to get.\n\n@*return* `cursor` — The Cursor object representing the system cursor type.\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The type of system cursor to get.",
                            "finish": [
                                53,
                                41
                            ],
                            "name": "ctype",
                            "rawdesc": "The type of system cursor to get.",
                            "start": [
                                53,
                                36
                            ],
                            "type": "local",
                            "view": "\"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8)"
                        }
                    ],
                    "desc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n@*param* `ctype` — The type of system cursor to get.\n\n@*return* `cursor` — The Cursor object representing the system cursor type.\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                    "finish": [
                        53,
                        46
                    ],
                    "rawdesc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                    "returns": [
                        {
                            "desc": "The Cursor object representing the system cursor type.",
                            "name": "cursor",
                            "rawdesc": "The Cursor object representing the system cursor type.",
                            "type": "function.return",
                            "view": "love.Cursor"
                        }
                    ],
                    "start": [
                        53,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getSystemCursor(ctype: \"arrow\"|\"crosshair\"|\"hand\"|\"ibeam\"|\"image\"...(+8))\n  -> cursor: love.Cursor"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    53,
                    35
                ],
                "name": "getSystemCursor",
                "rawdesc": "\nGets a Cursor object representing a system-native hardware cursor.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getSystemCursor)\n\n\n```lua\n-- \n-- Types of hardware cursors.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/CursorType)\n-- \nctype:\n    | \"image\" -- The cursor is using a custom image.\n    | \"arrow\" -- An arrow pointer.\n    | \"ibeam\" -- An I-beam, normally used when mousing over editable or selectable text.\n    | \"wait\" -- Wait graphic.\n    | \"waitarrow\" -- Small wait cursor with an arrow pointer.\n    | \"crosshair\" -- Crosshair symbol.\n    | \"sizenwse\" -- Double arrow pointing to the top-left and bottom-right.\n    | \"sizenesw\" -- Double arrow pointing to the top-right and bottom-left.\n    | \"sizewe\" -- Double arrow pointing left and right.\n    | \"sizens\" -- Double arrow pointing up and down.\n    | \"sizeall\" -- Four-pointed arrow pointing up, down, left, and right.\n    | \"no\" -- Slashed circle or crossbones.\n    | \"hand\" -- Hand symbol.\n```",
                "start": [
                    53,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.getSystemCursor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)\n\n@*return* `x` — The position of the mouse along the x-axis.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)\n\n@*return* `x` — The position of the mouse along the x-axis.",
                    "finish": [
                        62,
                        30
                    ],
                    "rawdesc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)",
                    "returns": [
                        {
                            "desc": "The position of the mouse along the x-axis.",
                            "name": "x",
                            "rawdesc": "The position of the mouse along the x-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        62,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getX()\n  -> x: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    62,
                    24
                ],
                "name": "getX",
                "rawdesc": "\nReturns the current x-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getX)",
                "start": [
                    62,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.getX",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)\n\n@*return* `y` — The position of the mouse along the y-axis.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)\n\n@*return* `y` — The position of the mouse along the y-axis.",
                    "finish": [
                        71,
                        30
                    ],
                    "rawdesc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)",
                    "returns": [
                        {
                            "desc": "The position of the mouse along the y-axis.",
                            "name": "y",
                            "rawdesc": "The position of the mouse along the y-axis.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        71,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.getY()\n  -> y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    71,
                    24
                ],
                "name": "getY",
                "rawdesc": "\nReturns the current y-position of the mouse.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.getY)",
                "start": [
                    71,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.getY",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)\n\n@*return* `supported` — Whether the system has cursor functionality.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)\n\n@*return* `supported` — Whether the system has cursor functionality.",
                    "finish": [
                        82,
                        43
                    ],
                    "rawdesc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)",
                    "returns": [
                        {
                            "desc": "Whether the system has cursor functionality.",
                            "name": "supported",
                            "rawdesc": "Whether the system has cursor functionality.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        82,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isCursorSupported()\n  -> supported: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    82,
                    37
                ],
                "name": "isCursorSupported",
                "rawdesc": "\nGets whether cursor functionality is supported.\n\nIf it isn't supported, calling love.mouse.newCursor and love.mouse.getSystemCursor will cause an error. Mobile devices do not support cursors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isCursorSupported)",
                "start": [
                    82,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.isCursorSupported",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)\n\n@*param* `button` — The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.\n\n@*return* `down` — True if any specified button is down.",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.",
                            "finish": [
                                95,
                                33
                            ],
                            "name": "button",
                            "rawdesc": "The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.",
                            "start": [
                                95,
                                27
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                95,
                                38
                            ],
                            "start": [
                                95,
                                35
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)\n\n@*param* `button` — The index of a button to check. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependant.\n\n@*return* `down` — True if any specified button is down.",
                    "finish": [
                        95,
                        43
                    ],
                    "rawdesc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)",
                    "returns": [
                        {
                            "desc": "True if any specified button is down.",
                            "name": "down",
                            "rawdesc": "True if any specified button is down.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        95,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isDown(button: number, ...number)\n  -> down: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    95,
                    26
                ],
                "name": "isDown",
                "rawdesc": "\nChecks whether a certain mouse button is down.\n\nThis function does not detect mouse wheel scrolling; you must use the love.wheelmoved (or love.mousepressed in version 0.9.2 and older) callback for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isDown)",
                "start": [
                    95,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.isDown",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)\n\n@*return* `grabbed` — True if the cursor is grabbed, false if it is not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)\n\n@*return* `grabbed` — True if the cursor is grabbed, false if it is not.",
                    "finish": [
                        104,
                        35
                    ],
                    "rawdesc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)",
                    "returns": [
                        {
                            "desc": "True if the cursor is grabbed, false if it is not.",
                            "name": "grabbed",
                            "rawdesc": "True if the cursor is grabbed, false if it is not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isGrabbed()\n  -> grabbed: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    104,
                    29
                ],
                "name": "isGrabbed",
                "rawdesc": "\nChecks if the mouse is grabbed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isGrabbed)",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.isGrabbed",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)\n\n@*return* `visible` — True if the cursor to visible, false if the cursor is hidden.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)\n\n@*return* `visible` — True if the cursor to visible, false if the cursor is hidden.",
                    "finish": [
                        113,
                        35
                    ],
                    "rawdesc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)",
                    "returns": [
                        {
                            "desc": "True if the cursor to visible, false if the cursor is hidden.",
                            "name": "visible",
                            "rawdesc": "True if the cursor to visible, false if the cursor is hidden.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        113,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.isVisible()\n  -> visible: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    113,
                    29
                ],
                "name": "isVisible",
                "rawdesc": "\nChecks if the cursor is visible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.isVisible)",
                "start": [
                    113,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.isVisible",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)\n\n\n---\n\n@*param* `imageData` — The ImageData to use for the new Cursor.\n\n@*param* `hotx` — The x-coordinate in the ImageData of the cursor's hot spot.\n\n@*param* `hoty` — The y-coordinate in the ImageData of the cursor's hot spot.\n\n@*return* `cursor` — The new Cursor object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The ImageData to use for the new Cursor.",
                            "finish": [
                                131,
                                39
                            ],
                            "name": "imageData",
                            "rawdesc": "The ImageData to use for the new Cursor.",
                            "start": [
                                131,
                                30
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        },
                        {
                            "desc": "The x-coordinate in the ImageData of the cursor's hot spot.",
                            "finish": [
                                131,
                                45
                            ],
                            "name": "hotx",
                            "rawdesc": "The x-coordinate in the ImageData of the cursor's hot spot.",
                            "start": [
                                131,
                                41
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y-coordinate in the ImageData of the cursor's hot spot.",
                            "finish": [
                                131,
                                51
                            ],
                            "name": "hoty",
                            "rawdesc": "The y-coordinate in the ImageData of the cursor's hot spot.",
                            "start": [
                                131,
                                47
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)\n\n\n---\n\n@*param* `imageData` — The ImageData to use for the new Cursor.\n\n@*param* `hotx` — The x-coordinate in the ImageData of the cursor's hot spot.\n\n@*param* `hoty` — The y-coordinate in the ImageData of the cursor's hot spot.\n\n@*return* `cursor` — The new Cursor object.",
                    "finish": [
                        131,
                        56
                    ],
                    "rawdesc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)",
                    "returns": [
                        {
                            "desc": "The new Cursor object.",
                            "name": "cursor",
                            "rawdesc": "The new Cursor object.",
                            "type": "function.return",
                            "view": "love.Cursor"
                        }
                    ],
                    "start": [
                        131,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.newCursor(imageData: love.ImageData, hotx?: number, hoty?: number)\n  -> cursor: love.Cursor"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    131,
                    29
                ],
                "name": "newCursor",
                "rawdesc": "\nCreates a new hardware Cursor object from an image file or ImageData.\n\nHardware cursors are framerate-independent and work the same way as normal operating system cursors. Unlike drawing an image at the mouse's current coordinates, hardware cursors never have visible lag between when the mouse is moved and when the cursor position updates, even at low framerates.\n\nThe hot spot is the point the operating system uses to determine what was clicked and at what position the mouse cursor is. For example, the normal arrow pointer normally has its hot spot at the top left of the image, but a crosshair cursor might have it in the middle.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.newCursor)",
                "start": [
                    131,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.newCursor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)\n\n\n---\n\n@*param* `cursor` — The Cursor object to use as the current mouse cursor.",
                "extends": {
                    "args": [
                        {
                            "desc": "The Cursor object to use as the current mouse cursor.",
                            "finish": [
                                141,
                                36
                            ],
                            "name": "cursor",
                            "rawdesc": "The Cursor object to use as the current mouse cursor.",
                            "start": [
                                141,
                                30
                            ],
                            "type": "local",
                            "view": "love.Cursor"
                        }
                    ],
                    "desc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)\n\n\n---\n\n@*param* `cursor` — The Cursor object to use as the current mouse cursor.",
                    "finish": [
                        141,
                        41
                    ],
                    "rawdesc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)",
                    "start": [
                        141,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setCursor(cursor: love.Cursor)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    141,
                    29
                ],
                "name": "setCursor",
                "rawdesc": "\nSets the current mouse cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setCursor)",
                "start": [
                    141,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setCursor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)\n\n@*param* `grab` — True to confine the mouse, false to let it leave the window.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to confine the mouse, false to let it leave the window.",
                            "finish": [
                                150,
                                35
                            ],
                            "name": "grab",
                            "rawdesc": "True to confine the mouse, false to let it leave the window.",
                            "start": [
                                150,
                                31
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)\n\n@*param* `grab` — True to confine the mouse, false to let it leave the window.",
                    "finish": [
                        150,
                        40
                    ],
                    "rawdesc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)",
                    "start": [
                        150,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setGrabbed(grab: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    150,
                    30
                ],
                "name": "setGrabbed",
                "rawdesc": "\nGrabs the mouse and confines it to the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setGrabbed)",
                "start": [
                    150,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setGrabbed",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)\n\n@*param* `x` — The new position of the mouse along the x-axis.\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new position of the mouse along the x-axis.",
                            "finish": [
                                160,
                                33
                            ],
                            "name": "x",
                            "rawdesc": "The new position of the mouse along the x-axis.",
                            "start": [
                                160,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The new position of the mouse along the y-axis.",
                            "finish": [
                                160,
                                36
                            ],
                            "name": "y",
                            "rawdesc": "The new position of the mouse along the y-axis.",
                            "start": [
                                160,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)\n\n@*param* `x` — The new position of the mouse along the x-axis.\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                    "finish": [
                        160,
                        41
                    ],
                    "rawdesc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)",
                    "start": [
                        160,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setPosition(x: number, y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    160,
                    31
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the current position of the mouse. Non-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setPosition)",
                "start": [
                    160,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)\n\n@*param* `enable` — True to enable relative mode, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable relative mode, false to disable it.",
                            "finish": [
                                173,
                                42
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable relative mode, false to disable it.",
                            "start": [
                                173,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)\n\n@*param* `enable` — True to enable relative mode, false to disable it.",
                    "finish": [
                        173,
                        47
                    ],
                    "rawdesc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)",
                    "start": [
                        173,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setRelativeMode(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    173,
                    35
                ],
                "name": "setRelativeMode",
                "rawdesc": "\nSets whether relative mode is enabled for the mouse.\n\nWhen relative mode is enabled, the cursor is hidden and doesn't move when the mouse does, but relative mouse motion events are still generated via love.mousemoved. This lets the mouse move in any direction indefinitely without the cursor getting stuck at the edges of the screen.\n\nThe reported position of the mouse may not be updated while relative mode is enabled, even when relative mouse motion events are generated.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setRelativeMode)",
                "start": [
                    173,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setRelativeMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)\n\n@*param* `visible` — True to set the cursor to visible, false to hide the cursor.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to set the cursor to visible, false to hide the cursor.",
                            "finish": [
                                182,
                                38
                            ],
                            "name": "visible",
                            "rawdesc": "True to set the cursor to visible, false to hide the cursor.",
                            "start": [
                                182,
                                31
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)\n\n@*param* `visible` — True to set the cursor to visible, false to hide the cursor.",
                    "finish": [
                        182,
                        43
                    ],
                    "rawdesc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)",
                    "start": [
                        182,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setVisible(visible: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    182,
                    30
                ],
                "name": "setVisible",
                "rawdesc": "\nSets the current visibility of the cursor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setVisible)",
                "start": [
                    182,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setVisible",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)\n\n@*param* `x` — The new position of the mouse along the x-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new position of the mouse along the x-axis.",
                            "finish": [
                                193,
                                26
                            ],
                            "name": "x",
                            "rawdesc": "The new position of the mouse along the x-axis.",
                            "start": [
                                193,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)\n\n@*param* `x` — The new position of the mouse along the x-axis.",
                    "finish": [
                        193,
                        31
                    ],
                    "rawdesc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)",
                    "start": [
                        193,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setX(x: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    193,
                    24
                ],
                "name": "setX",
                "rawdesc": "\nSets the current X position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setX)",
                "start": [
                    193,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setX",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new position of the mouse along the y-axis.",
                            "finish": [
                                204,
                                26
                            ],
                            "name": "y",
                            "rawdesc": "The new position of the mouse along the y-axis.",
                            "start": [
                                204,
                                25
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)\n\n@*param* `y` — The new position of the mouse along the y-axis.",
                    "finish": [
                        204,
                        31
                    ],
                    "rawdesc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)",
                    "start": [
                        204,
                        0
                    ],
                    "type": "function",
                    "view": "function love.mouse.setY(y: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/mouse.lua",
                "finish": [
                    204,
                    24
                ],
                "name": "setY",
                "rawdesc": "\nSets the current Y position of the mouse.\n\nNon-integer values are floored.\n\n\n[Open in Browser](https://love2d.org/wiki/love.mouse.setY)",
                "start": [
                    204,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.mouse.setY",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when window receives or loses mouse focus.\n",
                "finish": [
                    254,
                    45
                ],
                "rawdesc": "\nCallback function triggered when window receives or loses mouse focus.\n",
                "start": [
                    254,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(focus: boolean)"
            }
        ],
        "fields": [],
        "name": "love.mousefocus",
        "type": "type",
        "view": "love.mousefocus"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when the mouse is moved.\n",
                "finish": [
                    259,
                    93
                ],
                "rawdesc": "\nCallback function triggered when the mouse is moved.\n",
                "start": [
                    259,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(x: number, y: number, dx: number, dy: number, istouch: boolean)"
            }
        ],
        "fields": [],
        "name": "love.mousemoved",
        "type": "type",
        "view": "love.mousemoved"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a mouse button is pressed.\n",
                "finish": [
                    264,
                    104
                ],
                "rawdesc": "\nCallback function triggered when a mouse button is pressed.\n",
                "start": [
                    264,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(x: number, y: number, button: number, istouch: boolean, presses: number)"
            }
        ],
        "fields": [],
        "name": "love.mousepressed",
        "type": "type",
        "view": "love.mousepressed"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a mouse button is released.\n",
                "finish": [
                    269,
                    105
                ],
                "rawdesc": "\nCallback function triggered when a mouse button is released.\n",
                "start": [
                    269,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(x: number, y: number, button: number, istouch: boolean, presses: number)"
            }
        ],
        "fields": [],
        "name": "love.mousereleased",
        "type": "type",
        "view": "love.mousereleased"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "extends": {
                    "desc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                    "finish": [
                        9,
                        17
                    ],
                    "rawdesc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                    "start": [
                        9,
                        15
                    ],
                    "type": "table",
                    "view": "love.physics"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    9,
                    12
                ],
                "name": "physics",
                "rawdesc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.physics",
                "visible": "public"
            }
        ],
        "name": "love.physics",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    8,
                    22
                ],
                "rawdesc": "\nCan simulate 2D rigid body physics in a realistic manner. This module is based on Box2D, and this API corresponds to the Box2D API as closely as possible.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.physics",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)\n\n@*param* `fixture1` — The first fixture.\n\n@*param* `fixture2` — The second fixture.\n\n@*return* `distance` — The distance of the two points.\n\n@*return* `x1` — The x-coordinate of the first point.\n\n@*return* `y1` — The y-coordinate of the first point.\n\n@*return* `x2` — The x-coordinate of the second point.\n\n@*return* `y2` — The y-coordinate of the second point.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first fixture.",
                            "finish": [
                                24,
                                42
                            ],
                            "name": "fixture1",
                            "rawdesc": "The first fixture.",
                            "start": [
                                24,
                                34
                            ],
                            "type": "local",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The second fixture.",
                            "finish": [
                                24,
                                52
                            ],
                            "name": "fixture2",
                            "rawdesc": "The second fixture.",
                            "start": [
                                24,
                                44
                            ],
                            "type": "local",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)\n\n@*param* `fixture1` — The first fixture.\n\n@*param* `fixture2` — The second fixture.\n\n@*return* `distance` — The distance of the two points.\n\n@*return* `x1` — The x-coordinate of the first point.\n\n@*return* `y1` — The y-coordinate of the first point.\n\n@*return* `x2` — The x-coordinate of the second point.\n\n@*return* `y2` — The y-coordinate of the second point.",
                    "finish": [
                        24,
                        57
                    ],
                    "rawdesc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)",
                    "returns": [
                        {
                            "desc": "The distance of the two points.",
                            "name": "distance",
                            "rawdesc": "The distance of the two points.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-coordinate of the first point.",
                            "name": "x1",
                            "rawdesc": "The x-coordinate of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the first point.",
                            "name": "y1",
                            "rawdesc": "The y-coordinate of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-coordinate of the second point.",
                            "name": "x2",
                            "rawdesc": "The x-coordinate of the second point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the second point.",
                            "name": "y2",
                            "rawdesc": "The y-coordinate of the second point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        24,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.getDistance(fixture1: love.Fixture, fixture2: love.Fixture)\n  -> distance: number\n  2. x1: number\n  3. y1: number\n  4. x2: number\n  5. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    24,
                    33
                ],
                "name": "getDistance",
                "rawdesc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)",
                "start": [
                    24,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)\n\n@*return* `scale` — The scale factor as an integer.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)\n\n@*return* `scale` — The scale factor as an integer.",
                    "finish": [
                        37,
                        36
                    ],
                    "rawdesc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)",
                    "returns": [
                        {
                            "desc": "The scale factor as an integer.",
                            "name": "scale",
                            "rawdesc": "The scale factor as an integer.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        37,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.getMeter()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    37,
                    30
                ],
                "name": "getMeter",
                "rawdesc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)",
                "start": [
                    37,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n@*param* `world` — The world to create the body in.\n\n@*param* `x` — The x position of the body.\n\n@*param* `y` — The y position of the body.\n\n@*param* `type` — The type of the body.\n\n@*return* `body` — A new body.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The world to create the body in.",
                            "finish": [
                                60,
                                35
                            ],
                            "name": "world",
                            "rawdesc": "The world to create the body in.",
                            "start": [
                                60,
                                30
                            ],
                            "type": "local",
                            "view": "love.World"
                        },
                        {
                            "desc": "The x position of the body.",
                            "finish": [
                                60,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the body.",
                            "start": [
                                60,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y position of the body.",
                            "finish": [
                                60,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the body.",
                            "start": [
                                60,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The type of the body.",
                            "finish": [
                                60,
                                47
                            ],
                            "name": "type",
                            "rawdesc": "The type of the body.",
                            "start": [
                                60,
                                43
                            ],
                            "type": "local",
                            "view": "(\"dynamic\"|\"kinematic\"|\"static\")?"
                        }
                    ],
                    "desc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n@*param* `world` — The world to create the body in.\n\n@*param* `x` — The x position of the body.\n\n@*param* `y` — The y position of the body.\n\n@*param* `type` — The type of the body.\n\n@*return* `body` — A new body.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "finish": [
                        60,
                        52
                    ],
                    "rawdesc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "returns": [
                        {
                            "desc": "A new body.",
                            "name": "body",
                            "rawdesc": "A new body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        60,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newBody(world: love.World, x?: number, y?: number, type?: \"dynamic\"|\"kinematic\"|\"static\")\n  -> body: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    60,
                    29
                ],
                "name": "newBody",
                "rawdesc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "start": [
                    60,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)\n\n\n---\n\n@*param* `loop` — If the chain should loop back to the first point.\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "If the chain should loop back to the first point.",
                            "finish": [
                                76,
                                40
                            ],
                            "name": "loop",
                            "rawdesc": "If the chain should loop back to the first point.",
                            "start": [
                                76,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                76,
                                44
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                76,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                76,
                                48
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                76,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                76,
                                52
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                76,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                76,
                                56
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                76,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                76,
                                61
                            ],
                            "start": [
                                76,
                                58
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)\n\n\n---\n\n@*param* `loop` — If the chain should loop back to the first point.\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                    "finish": [
                        76,
                        66
                    ],
                    "rawdesc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)",
                    "returns": [
                        {
                            "desc": "The new shape.",
                            "name": "shape",
                            "rawdesc": "The new shape.",
                            "type": "function.return",
                            "view": "love.ChainShape"
                        }
                    ],
                    "start": [
                        76,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newChainShape(loop: boolean, x1: number, y1: number, x2: number, y2: number, ...number)\n  -> shape: love.ChainShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    76,
                    35
                ],
                "name": "newChainShape",
                "rawdesc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)",
                "start": [
                    76,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)\n\n\n---\n\n@*param* `radius` — The radius of the circle.\n\n@*return* `shape` — The new shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The radius of the circle.",
                            "finish": [
                                87,
                                43
                            ],
                            "name": "radius",
                            "rawdesc": "The radius of the circle.",
                            "start": [
                                87,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)\n\n\n---\n\n@*param* `radius` — The radius of the circle.\n\n@*return* `shape` — The new shape.",
                    "finish": [
                        87,
                        48
                    ],
                    "rawdesc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)",
                    "returns": [
                        {
                            "desc": "The new shape.",
                            "name": "shape",
                            "rawdesc": "The new shape.",
                            "type": "function.return",
                            "view": "love.CircleShape"
                        }
                    ],
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newCircleShape(radius: number)\n  -> shape: love.CircleShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    87,
                    36
                ],
                "name": "newCircleShape",
                "rawdesc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point (world space).\n\n@*param* `y1` — The y position of the first anchor point (world space).\n\n@*param* `x2` — The x position of the second anchor point (world space).\n\n@*param* `y2` — The y position of the second anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new distance joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                105,
                                44
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                105,
                                39
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                105,
                                51
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                105,
                                46
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the first anchor point (world space).",
                            "finish": [
                                105,
                                55
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first anchor point (world space).",
                            "start": [
                                105,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first anchor point (world space).",
                            "finish": [
                                105,
                                59
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first anchor point (world space).",
                            "start": [
                                105,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second anchor point (world space).",
                            "finish": [
                                105,
                                63
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second anchor point (world space).",
                            "start": [
                                105,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second anchor point (world space).",
                            "finish": [
                                105,
                                67
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second anchor point (world space).",
                            "start": [
                                105,
                                65
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                105,
                                85
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                105,
                                69
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point (world space).\n\n@*param* `y1` — The y position of the first anchor point (world space).\n\n@*param* `x2` — The x position of the second anchor point (world space).\n\n@*param* `y2` — The y position of the second anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new distance joint.",
                    "finish": [
                        105,
                        90
                    ],
                    "rawdesc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)",
                    "returns": [
                        {
                            "desc": "The new distance joint.",
                            "name": "joint",
                            "rawdesc": "The new distance joint.",
                            "type": "function.return",
                            "view": "love.DistanceJoint"
                        }
                    ],
                    "start": [
                        105,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newDistanceJoint(body1: love.Body, body2: love.Body, x1: number, y1: number, x2: number, y2: number, collideConnected?: boolean)\n  -> joint: love.DistanceJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    105,
                    38
                ],
                "name": "newDistanceJoint",
                "rawdesc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)",
                "start": [
                    105,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                118,
                                37
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                118,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                118,
                                41
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                118,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                118,
                                45
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                118,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                118,
                                49
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                118,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                    "finish": [
                        118,
                        54
                    ],
                    "rawdesc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)",
                    "returns": [
                        {
                            "desc": "The new shape.",
                            "name": "shape",
                            "rawdesc": "The new shape.",
                            "type": "function.return",
                            "view": "love.EdgeShape"
                        }
                    ],
                    "start": [
                        118,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newEdgeShape(x1: number, y1: number, x2: number, y2: number)\n  -> shape: love.EdgeShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    118,
                    34
                ],
                "name": "newEdgeShape",
                "rawdesc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)",
                "start": [
                    118,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)\n\n@*param* `body` — The body which gets the fixture attached.\n\n@*param* `shape` — The shape to be copied to the fixture.\n\n@*param* `density` — The density of the fixture.\n\n@*return* `fixture` — The new fixture.",
                "extends": {
                    "args": [
                        {
                            "desc": "The body which gets the fixture attached.",
                            "finish": [
                                132,
                                37
                            ],
                            "name": "body",
                            "rawdesc": "The body which gets the fixture attached.",
                            "start": [
                                132,
                                33
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The shape to be copied to the fixture.",
                            "finish": [
                                132,
                                44
                            ],
                            "name": "shape",
                            "rawdesc": "The shape to be copied to the fixture.",
                            "start": [
                                132,
                                39
                            ],
                            "type": "local",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The density of the fixture.",
                            "finish": [
                                132,
                                53
                            ],
                            "name": "density",
                            "rawdesc": "The density of the fixture.",
                            "start": [
                                132,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)\n\n@*param* `body` — The body which gets the fixture attached.\n\n@*param* `shape` — The shape to be copied to the fixture.\n\n@*param* `density` — The density of the fixture.\n\n@*return* `fixture` — The new fixture.",
                    "finish": [
                        132,
                        58
                    ],
                    "rawdesc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)",
                    "returns": [
                        {
                            "desc": "The new fixture.",
                            "name": "fixture",
                            "rawdesc": "The new fixture.",
                            "type": "function.return",
                            "view": "love.Fixture"
                        }
                    ],
                    "start": [
                        132,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newFixture(body: love.Body, shape: love.Shape, density?: number)\n  -> fixture: love.Fixture"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    132,
                    32
                ],
                "name": "newFixture",
                "rawdesc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)",
                "start": [
                    132,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new FrictionJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                147,
                                44
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                147,
                                39
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                147,
                                51
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                147,
                                46
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the anchor point.",
                            "finish": [
                                147,
                                54
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the anchor point.",
                            "start": [
                                147,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the anchor point.",
                            "finish": [
                                147,
                                57
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the anchor point.",
                            "start": [
                                147,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                147,
                                75
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                147,
                                59
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new FrictionJoint.",
                    "finish": [
                        147,
                        80
                    ],
                    "rawdesc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)",
                    "returns": [
                        {
                            "desc": "The new FrictionJoint.",
                            "name": "joint",
                            "rawdesc": "The new FrictionJoint.",
                            "type": "function.return",
                            "view": "love.FrictionJoint"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newFrictionJoint(body1: love.Body, body2: love.Body, x: number, y: number, collideConnected?: boolean)\n  -> joint: love.FrictionJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    147,
                    38
                ],
                "name": "newFrictionJoint",
                "rawdesc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)",
                "start": [
                    147,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)\n\n@*param* `joint1` — The first joint to connect with a gear joint.\n\n@*param* `joint2` — The second joint to connect with a gear joint.\n\n@*param* `ratio` — The gear ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new gear joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first joint to connect with a gear joint.",
                            "finish": [
                                164,
                                41
                            ],
                            "name": "joint1",
                            "rawdesc": "The first joint to connect with a gear joint.",
                            "start": [
                                164,
                                35
                            ],
                            "type": "local",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The second joint to connect with a gear joint.",
                            "finish": [
                                164,
                                49
                            ],
                            "name": "joint2",
                            "rawdesc": "The second joint to connect with a gear joint.",
                            "start": [
                                164,
                                43
                            ],
                            "type": "local",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The gear ratio.",
                            "finish": [
                                164,
                                56
                            ],
                            "name": "ratio",
                            "rawdesc": "The gear ratio.",
                            "start": [
                                164,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                164,
                                74
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                164,
                                58
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)\n\n@*param* `joint1` — The first joint to connect with a gear joint.\n\n@*param* `joint2` — The second joint to connect with a gear joint.\n\n@*param* `ratio` — The gear ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new gear joint.",
                    "finish": [
                        164,
                        79
                    ],
                    "rawdesc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)",
                    "returns": [
                        {
                            "desc": "The new gear joint.",
                            "name": "joint",
                            "rawdesc": "The new gear joint.",
                            "type": "function.return",
                            "view": "love.GearJoint"
                        }
                    ],
                    "start": [
                        164,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newGearJoint(joint1: love.Joint, joint2: love.Joint, ratio?: number, collideConnected?: boolean)\n  -> joint: love.GearJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    164,
                    34
                ],
                "name": "newGearJoint",
                "rawdesc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)",
                "start": [
                    164,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `correctionFactor` — The joint's initial position correction factor, in the range of 1.\n\n@*return* `joint` — The new MotorJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                179,
                                41
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                179,
                                36
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                179,
                                48
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                179,
                                43
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The joint's initial position correction factor, in the range of 1.",
                            "finish": [
                                179,
                                66
                            ],
                            "name": "correctionFactor",
                            "rawdesc": "The joint's initial position correction factor, in the range of 1.",
                            "start": [
                                179,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `correctionFactor` — The joint's initial position correction factor, in the range of 1.\n\n@*return* `joint` — The new MotorJoint.",
                    "finish": [
                        179,
                        71
                    ],
                    "rawdesc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)",
                    "returns": [
                        {
                            "desc": "The new MotorJoint.",
                            "name": "joint",
                            "rawdesc": "The new MotorJoint.",
                            "type": "function.return",
                            "view": "love.MotorJoint"
                        }
                    ],
                    "start": [
                        179,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newMotorJoint(body1: love.Body, body2: love.Body, correctionFactor?: number)\n  -> joint: love.MotorJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    179,
                    35
                ],
                "name": "newMotorJoint",
                "rawdesc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)",
                "start": [
                    179,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)\n\n@*param* `body` — The body to attach to the mouse.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*return* `joint` — The new mouse joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The body to attach to the mouse.",
                            "finish": [
                                195,
                                40
                            ],
                            "name": "body",
                            "rawdesc": "The body to attach to the mouse.",
                            "start": [
                                195,
                                36
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the connecting point.",
                            "finish": [
                                195,
                                43
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the connecting point.",
                            "start": [
                                195,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the connecting point.",
                            "finish": [
                                195,
                                46
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the connecting point.",
                            "start": [
                                195,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)\n\n@*param* `body` — The body to attach to the mouse.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*return* `joint` — The new mouse joint.",
                    "finish": [
                        195,
                        51
                    ],
                    "rawdesc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)",
                    "returns": [
                        {
                            "desc": "The new mouse joint.",
                            "name": "joint",
                            "rawdesc": "The new mouse joint.",
                            "type": "function.return",
                            "view": "love.MouseJoint"
                        }
                    ],
                    "start": [
                        195,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newMouseJoint(body: love.Body, x: number, y: number)\n  -> joint: love.MouseJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    195,
                    35
                ],
                "name": "newMouseJoint",
                "rawdesc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)",
                "start": [
                    195,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)\n\n\n---\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*param* `x3` — The x position of the third point.\n\n@*param* `y3` — The y position of the third point.\n\n@*return* `shape` — A new PolygonShape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                214,
                                40
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                214,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                214,
                                44
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                214,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                214,
                                48
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                214,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                214,
                                52
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                214,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the third point.",
                            "finish": [
                                214,
                                56
                            ],
                            "name": "x3",
                            "rawdesc": "The x position of the third point.",
                            "start": [
                                214,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the third point.",
                            "finish": [
                                214,
                                60
                            ],
                            "name": "y3",
                            "rawdesc": "The y position of the third point.",
                            "start": [
                                214,
                                58
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                214,
                                65
                            ],
                            "start": [
                                214,
                                62
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)\n\n\n---\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*param* `x3` — The x position of the third point.\n\n@*param* `y3` — The y position of the third point.\n\n@*return* `shape` — A new PolygonShape.",
                    "finish": [
                        214,
                        70
                    ],
                    "rawdesc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)",
                    "returns": [
                        {
                            "desc": "A new PolygonShape.",
                            "name": "shape",
                            "rawdesc": "A new PolygonShape.",
                            "type": "function.return",
                            "view": "love.PolygonShape"
                        }
                    ],
                    "start": [
                        214,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newPolygonShape(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, ...number)\n  -> shape: love.PolygonShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    214,
                    37
                ],
                "name": "newPolygonShape",
                "rawdesc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)",
                "start": [
                    214,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)\n\n\n---\n\n@*param* `body1` — The first body to connect with a prismatic joint.\n\n@*param* `body2` — The second body to connect with a prismatic joint.\n\n@*param* `x` — The x coordinate of the anchor point.\n\n@*param* `y` — The y coordinate of the anchor point.\n\n@*param* `ax` — The x coordinate of the axis vector.\n\n@*param* `ay` — The y coordinate of the axis vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new prismatic joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to connect with a prismatic joint.",
                            "finish": [
                                234,
                                45
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to connect with a prismatic joint.",
                            "start": [
                                234,
                                40
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to connect with a prismatic joint.",
                            "finish": [
                                234,
                                52
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to connect with a prismatic joint.",
                            "start": [
                                234,
                                47
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x coordinate of the anchor point.",
                            "finish": [
                                234,
                                55
                            ],
                            "name": "x",
                            "rawdesc": "The x coordinate of the anchor point.",
                            "start": [
                                234,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the anchor point.",
                            "finish": [
                                234,
                                58
                            ],
                            "name": "y",
                            "rawdesc": "The y coordinate of the anchor point.",
                            "start": [
                                234,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the axis vector.",
                            "finish": [
                                234,
                                62
                            ],
                            "name": "ax",
                            "rawdesc": "The x coordinate of the axis vector.",
                            "start": [
                                234,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the axis vector.",
                            "finish": [
                                234,
                                66
                            ],
                            "name": "ay",
                            "rawdesc": "The y coordinate of the axis vector.",
                            "start": [
                                234,
                                64
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                234,
                                84
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                234,
                                68
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)\n\n\n---\n\n@*param* `body1` — The first body to connect with a prismatic joint.\n\n@*param* `body2` — The second body to connect with a prismatic joint.\n\n@*param* `x` — The x coordinate of the anchor point.\n\n@*param* `y` — The y coordinate of the anchor point.\n\n@*param* `ax` — The x coordinate of the axis vector.\n\n@*param* `ay` — The y coordinate of the axis vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new prismatic joint.",
                    "finish": [
                        234,
                        89
                    ],
                    "rawdesc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)",
                    "returns": [
                        {
                            "desc": "The new prismatic joint.",
                            "name": "joint",
                            "rawdesc": "The new prismatic joint.",
                            "type": "function.return",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "start": [
                        234,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newPrismaticJoint(body1: love.Body, body2: love.Body, x: number, y: number, ax: number, ay: number, collideConnected?: boolean)\n  -> joint: love.PrismaticJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    234,
                    39
                ],
                "name": "newPrismaticJoint",
                "rawdesc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)",
                "start": [
                    234,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)\n\n@*param* `body1` — The first body to connect with a pulley joint.\n\n@*param* `body2` — The second body to connect with a pulley joint.\n\n@*param* `gx1` — The x coordinate of the first body's ground anchor.\n\n@*param* `gy1` — The y coordinate of the first body's ground anchor.\n\n@*param* `gx2` — The x coordinate of the second body's ground anchor.\n\n@*param* `gy2` — The y coordinate of the second body's ground anchor.\n\n@*param* `x1` — The x coordinate of the pulley joint anchor in the first body.\n\n@*param* `y1` — The y coordinate of the pulley joint anchor in the first body.\n\n@*param* `x2` — The x coordinate of the pulley joint anchor in the second body.\n\n@*param* `y2` — The y coordinate of the pulley joint anchor in the second body.\n\n@*param* `ratio` — The joint ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new pulley joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to connect with a pulley joint.",
                            "finish": [
                                259,
                                42
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to connect with a pulley joint.",
                            "start": [
                                259,
                                37
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to connect with a pulley joint.",
                            "finish": [
                                259,
                                49
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to connect with a pulley joint.",
                            "start": [
                                259,
                                44
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x coordinate of the first body's ground anchor.",
                            "finish": [
                                259,
                                54
                            ],
                            "name": "gx1",
                            "rawdesc": "The x coordinate of the first body's ground anchor.",
                            "start": [
                                259,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the first body's ground anchor.",
                            "finish": [
                                259,
                                59
                            ],
                            "name": "gy1",
                            "rawdesc": "The y coordinate of the first body's ground anchor.",
                            "start": [
                                259,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the second body's ground anchor.",
                            "finish": [
                                259,
                                64
                            ],
                            "name": "gx2",
                            "rawdesc": "The x coordinate of the second body's ground anchor.",
                            "start": [
                                259,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the second body's ground anchor.",
                            "finish": [
                                259,
                                69
                            ],
                            "name": "gy2",
                            "rawdesc": "The y coordinate of the second body's ground anchor.",
                            "start": [
                                259,
                                66
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the pulley joint anchor in the first body.",
                            "finish": [
                                259,
                                73
                            ],
                            "name": "x1",
                            "rawdesc": "The x coordinate of the pulley joint anchor in the first body.",
                            "start": [
                                259,
                                71
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the pulley joint anchor in the first body.",
                            "finish": [
                                259,
                                77
                            ],
                            "name": "y1",
                            "rawdesc": "The y coordinate of the pulley joint anchor in the first body.",
                            "start": [
                                259,
                                75
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the pulley joint anchor in the second body.",
                            "finish": [
                                259,
                                81
                            ],
                            "name": "x2",
                            "rawdesc": "The x coordinate of the pulley joint anchor in the second body.",
                            "start": [
                                259,
                                79
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the pulley joint anchor in the second body.",
                            "finish": [
                                259,
                                85
                            ],
                            "name": "y2",
                            "rawdesc": "The y coordinate of the pulley joint anchor in the second body.",
                            "start": [
                                259,
                                83
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The joint ratio.",
                            "finish": [
                                259,
                                92
                            ],
                            "name": "ratio",
                            "rawdesc": "The joint ratio.",
                            "start": [
                                259,
                                87
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                259,
                                110
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                259,
                                94
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)\n\n@*param* `body1` — The first body to connect with a pulley joint.\n\n@*param* `body2` — The second body to connect with a pulley joint.\n\n@*param* `gx1` — The x coordinate of the first body's ground anchor.\n\n@*param* `gy1` — The y coordinate of the first body's ground anchor.\n\n@*param* `gx2` — The x coordinate of the second body's ground anchor.\n\n@*param* `gy2` — The y coordinate of the second body's ground anchor.\n\n@*param* `x1` — The x coordinate of the pulley joint anchor in the first body.\n\n@*param* `y1` — The y coordinate of the pulley joint anchor in the first body.\n\n@*param* `x2` — The x coordinate of the pulley joint anchor in the second body.\n\n@*param* `y2` — The y coordinate of the pulley joint anchor in the second body.\n\n@*param* `ratio` — The joint ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new pulley joint.",
                    "finish": [
                        259,
                        115
                    ],
                    "rawdesc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)",
                    "returns": [
                        {
                            "desc": "The new pulley joint.",
                            "name": "joint",
                            "rawdesc": "The new pulley joint.",
                            "type": "function.return",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newPulleyJoint(body1: love.Body, body2: love.Body, gx1: number, gy1: number, gx2: number, gy2: number, x1: number, y1: number, x2: number, y2: number, ratio?: number, collideConnected?: boolean)\n  -> joint: love.PulleyJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    259,
                    36
                ],
                "name": "newPulleyJoint",
                "rawdesc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)\n\n\n---\n\n@*param* `width` — The width of the rectangle.\n\n@*param* `height` — The height of the rectangle.\n\n@*return* `shape` — A new PolygonShape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The width of the rectangle.",
                            "finish": [
                                273,
                                45
                            ],
                            "name": "width",
                            "rawdesc": "The width of the rectangle.",
                            "start": [
                                273,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the rectangle.",
                            "finish": [
                                273,
                                53
                            ],
                            "name": "height",
                            "rawdesc": "The height of the rectangle.",
                            "start": [
                                273,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)\n\n\n---\n\n@*param* `width` — The width of the rectangle.\n\n@*param* `height` — The height of the rectangle.\n\n@*return* `shape` — A new PolygonShape.",
                    "finish": [
                        273,
                        58
                    ],
                    "rawdesc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)",
                    "returns": [
                        {
                            "desc": "A new PolygonShape.",
                            "name": "shape",
                            "rawdesc": "A new PolygonShape.",
                            "type": "function.return",
                            "view": "love.PolygonShape"
                        }
                    ],
                    "start": [
                        273,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newRectangleShape(width: number, height: number)\n  -> shape: love.PolygonShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    273,
                    39
                ],
                "name": "newRectangleShape",
                "rawdesc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)",
                "start": [
                    273,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new revolute joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body.",
                            "finish": [
                                290,
                                44
                            ],
                            "name": "body1",
                            "rawdesc": "The first body.",
                            "start": [
                                290,
                                39
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body.",
                            "finish": [
                                290,
                                51
                            ],
                            "name": "body2",
                            "rawdesc": "The second body.",
                            "start": [
                                290,
                                46
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the connecting point.",
                            "finish": [
                                290,
                                54
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the connecting point.",
                            "start": [
                                290,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the connecting point.",
                            "finish": [
                                290,
                                57
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the connecting point.",
                            "start": [
                                290,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                290,
                                75
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                290,
                                59
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new revolute joint.",
                    "finish": [
                        290,
                        80
                    ],
                    "rawdesc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)",
                    "returns": [
                        {
                            "desc": "The new revolute joint.",
                            "name": "joint",
                            "rawdesc": "The new revolute joint.",
                            "type": "function.return",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "start": [
                        290,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newRevoluteJoint(body1: love.Body, body2: love.Body, x: number, y: number, collideConnected?: boolean)\n  -> joint: love.RevoluteJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    290,
                    38
                ],
                "name": "newRevoluteJoint",
                "rawdesc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)",
                "start": [
                    290,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point.\n\n@*param* `y1` — The y position of the first anchor point.\n\n@*param* `x2` — The x position of the second anchor point.\n\n@*param* `y2` — The y position of the second anchor point.\n\n@*param* `maxLength` — The maximum distance for the bodies.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new RopeJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                307,
                                40
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                307,
                                35
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                307,
                                47
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                307,
                                42
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the first anchor point.",
                            "finish": [
                                307,
                                51
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first anchor point.",
                            "start": [
                                307,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first anchor point.",
                            "finish": [
                                307,
                                55
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first anchor point.",
                            "start": [
                                307,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second anchor point.",
                            "finish": [
                                307,
                                59
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second anchor point.",
                            "start": [
                                307,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second anchor point.",
                            "finish": [
                                307,
                                63
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second anchor point.",
                            "start": [
                                307,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum distance for the bodies.",
                            "finish": [
                                307,
                                74
                            ],
                            "name": "maxLength",
                            "rawdesc": "The maximum distance for the bodies.",
                            "start": [
                                307,
                                65
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                307,
                                92
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                307,
                                76
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point.\n\n@*param* `y1` — The y position of the first anchor point.\n\n@*param* `x2` — The x position of the second anchor point.\n\n@*param* `y2` — The y position of the second anchor point.\n\n@*param* `maxLength` — The maximum distance for the bodies.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new RopeJoint.",
                    "finish": [
                        307,
                        97
                    ],
                    "rawdesc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)",
                    "returns": [
                        {
                            "desc": "The new RopeJoint.",
                            "name": "joint",
                            "rawdesc": "The new RopeJoint.",
                            "type": "function.return",
                            "view": "love.RopeJoint"
                        }
                    ],
                    "start": [
                        307,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newRopeJoint(body1: love.Body, body2: love.Body, x1: number, y1: number, x2: number, y2: number, maxLength: number, collideConnected?: boolean)\n  -> joint: love.RopeJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    307,
                    34
                ],
                "name": "newRopeJoint",
                "rawdesc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)",
                "start": [
                    307,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point (world space).\n\n@*param* `y` — The y position of the anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WeldJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                323,
                                40
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                323,
                                35
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                323,
                                47
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                323,
                                42
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the anchor point (world space).",
                            "finish": [
                                323,
                                50
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the anchor point (world space).",
                            "start": [
                                323,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the anchor point (world space).",
                            "finish": [
                                323,
                                53
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the anchor point (world space).",
                            "start": [
                                323,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                323,
                                71
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                323,
                                55
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point (world space).\n\n@*param* `y` — The y position of the anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WeldJoint.",
                    "finish": [
                        323,
                        76
                    ],
                    "rawdesc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)",
                    "returns": [
                        {
                            "desc": "The new WeldJoint.",
                            "name": "joint",
                            "rawdesc": "The new WeldJoint.",
                            "type": "function.return",
                            "view": "love.WeldJoint"
                        }
                    ],
                    "start": [
                        323,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newWeldJoint(body1: love.Body, body2: love.Body, x: number, y: number, collideConnected?: boolean)\n  -> joint: love.WeldJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    323,
                    34
                ],
                "name": "newWeldJoint",
                "rawdesc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)",
                "start": [
                    323,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `ax` — The x position of the axis unit vector.\n\n@*param* `ay` — The y position of the axis unit vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WheelJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body.",
                            "finish": [
                                340,
                                41
                            ],
                            "name": "body1",
                            "rawdesc": "The first body.",
                            "start": [
                                340,
                                36
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body.",
                            "finish": [
                                340,
                                48
                            ],
                            "name": "body2",
                            "rawdesc": "The second body.",
                            "start": [
                                340,
                                43
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the anchor point.",
                            "finish": [
                                340,
                                51
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the anchor point.",
                            "start": [
                                340,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the anchor point.",
                            "finish": [
                                340,
                                54
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the anchor point.",
                            "start": [
                                340,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the axis unit vector.",
                            "finish": [
                                340,
                                58
                            ],
                            "name": "ax",
                            "rawdesc": "The x position of the axis unit vector.",
                            "start": [
                                340,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the axis unit vector.",
                            "finish": [
                                340,
                                62
                            ],
                            "name": "ay",
                            "rawdesc": "The y position of the axis unit vector.",
                            "start": [
                                340,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                340,
                                80
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                340,
                                64
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `ax` — The x position of the axis unit vector.\n\n@*param* `ay` — The y position of the axis unit vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WheelJoint.",
                    "finish": [
                        340,
                        85
                    ],
                    "rawdesc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)",
                    "returns": [
                        {
                            "desc": "The new WheelJoint.",
                            "name": "joint",
                            "rawdesc": "The new WheelJoint.",
                            "type": "function.return",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "start": [
                        340,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newWheelJoint(body1: love.Body, body2: love.Body, x: number, y: number, ax: number, ay: number, collideConnected?: boolean)\n  -> joint: love.WheelJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    340,
                    35
                ],
                "name": "newWheelJoint",
                "rawdesc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)",
                "start": [
                    340,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)\n\n@*param* `xg` — The x component of gravity.\n\n@*param* `yg` — The y component of gravity.\n\n@*param* `sleep` — Whether the bodies in this world are allowed to sleep.\n\n@*return* `world` — A brave new World.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x component of gravity.",
                            "finish": [
                                352,
                                33
                            ],
                            "name": "xg",
                            "rawdesc": "The x component of gravity.",
                            "start": [
                                352,
                                31
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y component of gravity.",
                            "finish": [
                                352,
                                37
                            ],
                            "name": "yg",
                            "rawdesc": "The y component of gravity.",
                            "start": [
                                352,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Whether the bodies in this world are allowed to sleep.",
                            "finish": [
                                352,
                                44
                            ],
                            "name": "sleep",
                            "rawdesc": "Whether the bodies in this world are allowed to sleep.",
                            "start": [
                                352,
                                39
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)\n\n@*param* `xg` — The x component of gravity.\n\n@*param* `yg` — The y component of gravity.\n\n@*param* `sleep` — Whether the bodies in this world are allowed to sleep.\n\n@*return* `world` — A brave new World.",
                    "finish": [
                        352,
                        49
                    ],
                    "rawdesc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)",
                    "returns": [
                        {
                            "desc": "A brave new World.",
                            "name": "world",
                            "rawdesc": "A brave new World.",
                            "type": "function.return",
                            "view": "love.World"
                        }
                    ],
                    "start": [
                        352,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newWorld(xg?: number, yg?: number, sleep?: boolean)\n  -> world: love.World"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    352,
                    30
                ],
                "name": "newWorld",
                "rawdesc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)",
                "start": [
                    352,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)\n\n@*param* `scale` — The scale factor as an integer.",
                "extends": {
                    "args": [
                        {
                            "desc": "The scale factor as an integer.",
                            "finish": [
                                365,
                                36
                            ],
                            "name": "scale",
                            "rawdesc": "The scale factor as an integer.",
                            "start": [
                                365,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)\n\n@*param* `scale` — The scale factor as an integer.",
                    "finish": [
                        365,
                        41
                    ],
                    "rawdesc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)",
                    "start": [
                        365,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.setMeter(scale: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    365,
                    30
                ],
                "name": "setMeter",
                "rawdesc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)",
                "start": [
                    365,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics",
        "type": "type",
        "view": "love.physics"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)\n\n@*param* `fixture1` — The first fixture.\n\n@*param* `fixture2` — The second fixture.\n\n@*return* `distance` — The distance of the two points.\n\n@*return* `x1` — The x-coordinate of the first point.\n\n@*return* `y1` — The y-coordinate of the first point.\n\n@*return* `x2` — The x-coordinate of the second point.\n\n@*return* `y2` — The y-coordinate of the second point.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first fixture.",
                            "finish": [
                                24,
                                42
                            ],
                            "name": "fixture1",
                            "rawdesc": "The first fixture.",
                            "start": [
                                24,
                                34
                            ],
                            "type": "local",
                            "view": "love.Fixture"
                        },
                        {
                            "desc": "The second fixture.",
                            "finish": [
                                24,
                                52
                            ],
                            "name": "fixture2",
                            "rawdesc": "The second fixture.",
                            "start": [
                                24,
                                44
                            ],
                            "type": "local",
                            "view": "love.Fixture"
                        }
                    ],
                    "desc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)\n\n@*param* `fixture1` — The first fixture.\n\n@*param* `fixture2` — The second fixture.\n\n@*return* `distance` — The distance of the two points.\n\n@*return* `x1` — The x-coordinate of the first point.\n\n@*return* `y1` — The y-coordinate of the first point.\n\n@*return* `x2` — The x-coordinate of the second point.\n\n@*return* `y2` — The y-coordinate of the second point.",
                    "finish": [
                        24,
                        57
                    ],
                    "rawdesc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)",
                    "returns": [
                        {
                            "desc": "The distance of the two points.",
                            "name": "distance",
                            "rawdesc": "The distance of the two points.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-coordinate of the first point.",
                            "name": "x1",
                            "rawdesc": "The x-coordinate of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the first point.",
                            "name": "y1",
                            "rawdesc": "The y-coordinate of the first point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The x-coordinate of the second point.",
                            "name": "x2",
                            "rawdesc": "The x-coordinate of the second point.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the second point.",
                            "name": "y2",
                            "rawdesc": "The y-coordinate of the second point.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        24,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.getDistance(fixture1: love.Fixture, fixture2: love.Fixture)\n  -> distance: number\n  2. x1: number\n  3. y1: number\n  4. x2: number\n  5. y2: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    24,
                    33
                ],
                "name": "getDistance",
                "rawdesc": "\nReturns the two closest points between two fixtures and their distance.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getDistance)",
                "start": [
                    24,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.getDistance",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)\n\n@*return* `scale` — The scale factor as an integer.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)\n\n@*return* `scale` — The scale factor as an integer.",
                    "finish": [
                        37,
                        36
                    ],
                    "rawdesc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)",
                    "returns": [
                        {
                            "desc": "The scale factor as an integer.",
                            "name": "scale",
                            "rawdesc": "The scale factor as an integer.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        37,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.getMeter()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    37,
                    30
                ],
                "name": "getMeter",
                "rawdesc": "\nReturns the meter scale factor.\n\nAll coordinates in the physics module are divided by this number, creating a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.getMeter)",
                "start": [
                    37,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.getMeter",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n@*param* `world` — The world to create the body in.\n\n@*param* `x` — The x position of the body.\n\n@*param* `y` — The y position of the body.\n\n@*param* `type` — The type of the body.\n\n@*return* `body` — A new body.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The world to create the body in.",
                            "finish": [
                                60,
                                35
                            ],
                            "name": "world",
                            "rawdesc": "The world to create the body in.",
                            "start": [
                                60,
                                30
                            ],
                            "type": "local",
                            "view": "love.World"
                        },
                        {
                            "desc": "The x position of the body.",
                            "finish": [
                                60,
                                38
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the body.",
                            "start": [
                                60,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y position of the body.",
                            "finish": [
                                60,
                                41
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the body.",
                            "start": [
                                60,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The type of the body.",
                            "finish": [
                                60,
                                47
                            ],
                            "name": "type",
                            "rawdesc": "The type of the body.",
                            "start": [
                                60,
                                43
                            ],
                            "type": "local",
                            "view": "(\"dynamic\"|\"kinematic\"|\"static\")?"
                        }
                    ],
                    "desc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n@*param* `world` — The world to create the body in.\n\n@*param* `x` — The x position of the body.\n\n@*param* `y` — The y position of the body.\n\n@*param* `type` — The type of the body.\n\n@*return* `body` — A new body.\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "finish": [
                        60,
                        52
                    ],
                    "rawdesc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                    "returns": [
                        {
                            "desc": "A new body.",
                            "name": "body",
                            "rawdesc": "A new body.",
                            "type": "function.return",
                            "view": "love.Body"
                        }
                    ],
                    "start": [
                        60,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newBody(world: love.World, x?: number, y?: number, type?: \"dynamic\"|\"kinematic\"|\"static\")\n  -> body: love.Body"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    60,
                    29
                ],
                "name": "newBody",
                "rawdesc": "\nCreates a new body.\n\nThere are three types of bodies.\n\n* Static bodies do not move, have a infinite mass, and can be used for level boundaries.\n\n* Dynamic bodies are the main actors in the simulation, they collide with everything.\n\n* Kinematic bodies do not react to forces and only collide with dynamic bodies.\n\nThe mass of the body gets calculated when a Fixture is attached or removed, but can be changed at any time with Body:setMass or Body:resetMassData.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newBody)\n\n\n```lua\n-- \n-- The types of a Body.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/BodyType)\n-- \ntype:\n    | \"static\" -- Static bodies do not move.\n    | \"dynamic\" -- Dynamic bodies collide with all bodies.\n    | \"kinematic\" -- Kinematic bodies only collide with dynamic bodies.\n```",
                "start": [
                    60,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newBody",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)\n\n\n---\n\n@*param* `loop` — If the chain should loop back to the first point.\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "If the chain should loop back to the first point.",
                            "finish": [
                                76,
                                40
                            ],
                            "name": "loop",
                            "rawdesc": "If the chain should loop back to the first point.",
                            "start": [
                                76,
                                36
                            ],
                            "type": "local",
                            "view": "boolean"
                        },
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                76,
                                44
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                76,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                76,
                                48
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                76,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                76,
                                52
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                76,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                76,
                                56
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                76,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                76,
                                61
                            ],
                            "start": [
                                76,
                                58
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)\n\n\n---\n\n@*param* `loop` — If the chain should loop back to the first point.\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                    "finish": [
                        76,
                        66
                    ],
                    "rawdesc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)",
                    "returns": [
                        {
                            "desc": "The new shape.",
                            "name": "shape",
                            "rawdesc": "The new shape.",
                            "type": "function.return",
                            "view": "love.ChainShape"
                        }
                    ],
                    "start": [
                        76,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newChainShape(loop: boolean, x1: number, y1: number, x2: number, y2: number, ...number)\n  -> shape: love.ChainShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    76,
                    35
                ],
                "name": "newChainShape",
                "rawdesc": "\nCreates a new ChainShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newChainShape)",
                "start": [
                    76,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newChainShape",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)\n\n\n---\n\n@*param* `radius` — The radius of the circle.\n\n@*return* `shape` — The new shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The radius of the circle.",
                            "finish": [
                                87,
                                43
                            ],
                            "name": "radius",
                            "rawdesc": "The radius of the circle.",
                            "start": [
                                87,
                                37
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)\n\n\n---\n\n@*param* `radius` — The radius of the circle.\n\n@*return* `shape` — The new shape.",
                    "finish": [
                        87,
                        48
                    ],
                    "rawdesc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)",
                    "returns": [
                        {
                            "desc": "The new shape.",
                            "name": "shape",
                            "rawdesc": "The new shape.",
                            "type": "function.return",
                            "view": "love.CircleShape"
                        }
                    ],
                    "start": [
                        87,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newCircleShape(radius: number)\n  -> shape: love.CircleShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    87,
                    36
                ],
                "name": "newCircleShape",
                "rawdesc": "\nCreates a new CircleShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newCircleShape)",
                "start": [
                    87,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newCircleShape",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point (world space).\n\n@*param* `y1` — The y position of the first anchor point (world space).\n\n@*param* `x2` — The x position of the second anchor point (world space).\n\n@*param* `y2` — The y position of the second anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new distance joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                105,
                                44
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                105,
                                39
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                105,
                                51
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                105,
                                46
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the first anchor point (world space).",
                            "finish": [
                                105,
                                55
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first anchor point (world space).",
                            "start": [
                                105,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first anchor point (world space).",
                            "finish": [
                                105,
                                59
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first anchor point (world space).",
                            "start": [
                                105,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second anchor point (world space).",
                            "finish": [
                                105,
                                63
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second anchor point (world space).",
                            "start": [
                                105,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second anchor point (world space).",
                            "finish": [
                                105,
                                67
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second anchor point (world space).",
                            "start": [
                                105,
                                65
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                105,
                                85
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                105,
                                69
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point (world space).\n\n@*param* `y1` — The y position of the first anchor point (world space).\n\n@*param* `x2` — The x position of the second anchor point (world space).\n\n@*param* `y2` — The y position of the second anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new distance joint.",
                    "finish": [
                        105,
                        90
                    ],
                    "rawdesc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)",
                    "returns": [
                        {
                            "desc": "The new distance joint.",
                            "name": "joint",
                            "rawdesc": "The new distance joint.",
                            "type": "function.return",
                            "view": "love.DistanceJoint"
                        }
                    ],
                    "start": [
                        105,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newDistanceJoint(body1: love.Body, body2: love.Body, x1: number, y1: number, x2: number, y2: number, collideConnected?: boolean)\n  -> joint: love.DistanceJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    105,
                    38
                ],
                "name": "newDistanceJoint",
                "rawdesc": "\nCreates a DistanceJoint between two bodies.\n\nThis joint constrains the distance between two points on two bodies to be constant. These two points are specified in world coordinates and the two bodies are assumed to be in place when this joint is created. The first anchor point is connected to the first body and the second to the second body, and the points define the length of the distance joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newDistanceJoint)",
                "start": [
                    105,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newDistanceJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                118,
                                37
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                118,
                                35
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                118,
                                41
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                118,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                118,
                                45
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                118,
                                43
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                118,
                                49
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                118,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*return* `shape` — The new shape.",
                    "finish": [
                        118,
                        54
                    ],
                    "rawdesc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)",
                    "returns": [
                        {
                            "desc": "The new shape.",
                            "name": "shape",
                            "rawdesc": "The new shape.",
                            "type": "function.return",
                            "view": "love.EdgeShape"
                        }
                    ],
                    "start": [
                        118,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newEdgeShape(x1: number, y1: number, x2: number, y2: number)\n  -> shape: love.EdgeShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    118,
                    34
                ],
                "name": "newEdgeShape",
                "rawdesc": "\nCreates a new EdgeShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newEdgeShape)",
                "start": [
                    118,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newEdgeShape",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)\n\n@*param* `body` — The body which gets the fixture attached.\n\n@*param* `shape` — The shape to be copied to the fixture.\n\n@*param* `density` — The density of the fixture.\n\n@*return* `fixture` — The new fixture.",
                "extends": {
                    "args": [
                        {
                            "desc": "The body which gets the fixture attached.",
                            "finish": [
                                132,
                                37
                            ],
                            "name": "body",
                            "rawdesc": "The body which gets the fixture attached.",
                            "start": [
                                132,
                                33
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The shape to be copied to the fixture.",
                            "finish": [
                                132,
                                44
                            ],
                            "name": "shape",
                            "rawdesc": "The shape to be copied to the fixture.",
                            "start": [
                                132,
                                39
                            ],
                            "type": "local",
                            "view": "love.Shape"
                        },
                        {
                            "desc": "The density of the fixture.",
                            "finish": [
                                132,
                                53
                            ],
                            "name": "density",
                            "rawdesc": "The density of the fixture.",
                            "start": [
                                132,
                                46
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)\n\n@*param* `body` — The body which gets the fixture attached.\n\n@*param* `shape` — The shape to be copied to the fixture.\n\n@*param* `density` — The density of the fixture.\n\n@*return* `fixture` — The new fixture.",
                    "finish": [
                        132,
                        58
                    ],
                    "rawdesc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)",
                    "returns": [
                        {
                            "desc": "The new fixture.",
                            "name": "fixture",
                            "rawdesc": "The new fixture.",
                            "type": "function.return",
                            "view": "love.Fixture"
                        }
                    ],
                    "start": [
                        132,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newFixture(body: love.Body, shape: love.Shape, density?: number)\n  -> fixture: love.Fixture"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    132,
                    32
                ],
                "name": "newFixture",
                "rawdesc": "\nCreates and attaches a Fixture to a body.\n\nNote that the Shape object is copied rather than kept as a reference when the Fixture is created. To get the Shape object that the Fixture owns, use Fixture:getShape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFixture)",
                "start": [
                    132,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newFixture",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new FrictionJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                147,
                                44
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                147,
                                39
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                147,
                                51
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                147,
                                46
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the anchor point.",
                            "finish": [
                                147,
                                54
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the anchor point.",
                            "start": [
                                147,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the anchor point.",
                            "finish": [
                                147,
                                57
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the anchor point.",
                            "start": [
                                147,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                147,
                                75
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                147,
                                59
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new FrictionJoint.",
                    "finish": [
                        147,
                        80
                    ],
                    "rawdesc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)",
                    "returns": [
                        {
                            "desc": "The new FrictionJoint.",
                            "name": "joint",
                            "rawdesc": "The new FrictionJoint.",
                            "type": "function.return",
                            "view": "love.FrictionJoint"
                        }
                    ],
                    "start": [
                        147,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newFrictionJoint(body1: love.Body, body2: love.Body, x: number, y: number, collideConnected?: boolean)\n  -> joint: love.FrictionJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    147,
                    38
                ],
                "name": "newFrictionJoint",
                "rawdesc": "\nCreate a friction joint between two bodies. A FrictionJoint applies friction to a body.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newFrictionJoint)",
                "start": [
                    147,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newFrictionJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)\n\n@*param* `joint1` — The first joint to connect with a gear joint.\n\n@*param* `joint2` — The second joint to connect with a gear joint.\n\n@*param* `ratio` — The gear ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new gear joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first joint to connect with a gear joint.",
                            "finish": [
                                164,
                                41
                            ],
                            "name": "joint1",
                            "rawdesc": "The first joint to connect with a gear joint.",
                            "start": [
                                164,
                                35
                            ],
                            "type": "local",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The second joint to connect with a gear joint.",
                            "finish": [
                                164,
                                49
                            ],
                            "name": "joint2",
                            "rawdesc": "The second joint to connect with a gear joint.",
                            "start": [
                                164,
                                43
                            ],
                            "type": "local",
                            "view": "love.Joint"
                        },
                        {
                            "desc": "The gear ratio.",
                            "finish": [
                                164,
                                56
                            ],
                            "name": "ratio",
                            "rawdesc": "The gear ratio.",
                            "start": [
                                164,
                                51
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                164,
                                74
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                164,
                                58
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)\n\n@*param* `joint1` — The first joint to connect with a gear joint.\n\n@*param* `joint2` — The second joint to connect with a gear joint.\n\n@*param* `ratio` — The gear ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new gear joint.",
                    "finish": [
                        164,
                        79
                    ],
                    "rawdesc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)",
                    "returns": [
                        {
                            "desc": "The new gear joint.",
                            "name": "joint",
                            "rawdesc": "The new gear joint.",
                            "type": "function.return",
                            "view": "love.GearJoint"
                        }
                    ],
                    "start": [
                        164,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newGearJoint(joint1: love.Joint, joint2: love.Joint, ratio?: number, collideConnected?: boolean)\n  -> joint: love.GearJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    164,
                    34
                ],
                "name": "newGearJoint",
                "rawdesc": "\nCreate a GearJoint connecting two Joints.\n\nThe gear joint connects two joints that must be either  prismatic or  revolute joints. Using this joint requires that the joints it uses connect their respective bodies to the ground and have the ground as the first body. When destroying the bodies and joints you must make sure you destroy the gear joint before the other joints.\n\nThe gear joint has a ratio the determines how the angular or distance values of the connected joints relate to each other. The formula coordinate1 + ratio * coordinate2 always has a constant value that is set when the gear joint is created.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newGearJoint)",
                "start": [
                    164,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newGearJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `correctionFactor` — The joint's initial position correction factor, in the range of 1.\n\n@*return* `joint` — The new MotorJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                179,
                                41
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                179,
                                36
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                179,
                                48
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                179,
                                43
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The joint's initial position correction factor, in the range of 1.",
                            "finish": [
                                179,
                                66
                            ],
                            "name": "correctionFactor",
                            "rawdesc": "The joint's initial position correction factor, in the range of 1.",
                            "start": [
                                179,
                                50
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `correctionFactor` — The joint's initial position correction factor, in the range of 1.\n\n@*return* `joint` — The new MotorJoint.",
                    "finish": [
                        179,
                        71
                    ],
                    "rawdesc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)",
                    "returns": [
                        {
                            "desc": "The new MotorJoint.",
                            "name": "joint",
                            "rawdesc": "The new MotorJoint.",
                            "type": "function.return",
                            "view": "love.MotorJoint"
                        }
                    ],
                    "start": [
                        179,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newMotorJoint(body1: love.Body, body2: love.Body, correctionFactor?: number)\n  -> joint: love.MotorJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    179,
                    35
                ],
                "name": "newMotorJoint",
                "rawdesc": "\nCreates a joint between two bodies which controls the relative motion between them.\n\nPosition and rotation offsets can be specified once the MotorJoint has been created, as well as the maximum motor force and torque that will be be applied to reach the target offsets.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMotorJoint)",
                "start": [
                    179,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newMotorJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)\n\n@*param* `body` — The body to attach to the mouse.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*return* `joint` — The new mouse joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The body to attach to the mouse.",
                            "finish": [
                                195,
                                40
                            ],
                            "name": "body",
                            "rawdesc": "The body to attach to the mouse.",
                            "start": [
                                195,
                                36
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the connecting point.",
                            "finish": [
                                195,
                                43
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the connecting point.",
                            "start": [
                                195,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the connecting point.",
                            "finish": [
                                195,
                                46
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the connecting point.",
                            "start": [
                                195,
                                45
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)\n\n@*param* `body` — The body to attach to the mouse.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*return* `joint` — The new mouse joint.",
                    "finish": [
                        195,
                        51
                    ],
                    "rawdesc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)",
                    "returns": [
                        {
                            "desc": "The new mouse joint.",
                            "name": "joint",
                            "rawdesc": "The new mouse joint.",
                            "type": "function.return",
                            "view": "love.MouseJoint"
                        }
                    ],
                    "start": [
                        195,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newMouseJoint(body: love.Body, x: number, y: number)\n  -> joint: love.MouseJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    195,
                    35
                ],
                "name": "newMouseJoint",
                "rawdesc": "\nCreate a joint between a body and the mouse.\n\nThis joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).\n\nThe advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newMouseJoint)",
                "start": [
                    195,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newMouseJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)\n\n\n---\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*param* `x3` — The x position of the third point.\n\n@*param* `y3` — The y position of the third point.\n\n@*return* `shape` — A new PolygonShape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x position of the first point.",
                            "finish": [
                                214,
                                40
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first point.",
                            "start": [
                                214,
                                38
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first point.",
                            "finish": [
                                214,
                                44
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first point.",
                            "start": [
                                214,
                                42
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second point.",
                            "finish": [
                                214,
                                48
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second point.",
                            "start": [
                                214,
                                46
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second point.",
                            "finish": [
                                214,
                                52
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second point.",
                            "start": [
                                214,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the third point.",
                            "finish": [
                                214,
                                56
                            ],
                            "name": "x3",
                            "rawdesc": "The x position of the third point.",
                            "start": [
                                214,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the third point.",
                            "finish": [
                                214,
                                60
                            ],
                            "name": "y3",
                            "rawdesc": "The y position of the third point.",
                            "start": [
                                214,
                                58
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                214,
                                65
                            ],
                            "start": [
                                214,
                                62
                            ],
                            "type": "...",
                            "view": "number"
                        }
                    ],
                    "desc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)\n\n\n---\n\n@*param* `x1` — The x position of the first point.\n\n@*param* `y1` — The y position of the first point.\n\n@*param* `x2` — The x position of the second point.\n\n@*param* `y2` — The y position of the second point.\n\n@*param* `x3` — The x position of the third point.\n\n@*param* `y3` — The y position of the third point.\n\n@*return* `shape` — A new PolygonShape.",
                    "finish": [
                        214,
                        70
                    ],
                    "rawdesc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)",
                    "returns": [
                        {
                            "desc": "A new PolygonShape.",
                            "name": "shape",
                            "rawdesc": "A new PolygonShape.",
                            "type": "function.return",
                            "view": "love.PolygonShape"
                        }
                    ],
                    "start": [
                        214,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newPolygonShape(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, ...number)\n  -> shape: love.PolygonShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    214,
                    37
                ],
                "name": "newPolygonShape",
                "rawdesc": "\nCreates a new PolygonShape.\n\nThis shape can have 8 vertices at most, and must form a convex shape.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPolygonShape)",
                "start": [
                    214,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newPolygonShape",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)\n\n\n---\n\n@*param* `body1` — The first body to connect with a prismatic joint.\n\n@*param* `body2` — The second body to connect with a prismatic joint.\n\n@*param* `x` — The x coordinate of the anchor point.\n\n@*param* `y` — The y coordinate of the anchor point.\n\n@*param* `ax` — The x coordinate of the axis vector.\n\n@*param* `ay` — The y coordinate of the axis vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new prismatic joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to connect with a prismatic joint.",
                            "finish": [
                                234,
                                45
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to connect with a prismatic joint.",
                            "start": [
                                234,
                                40
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to connect with a prismatic joint.",
                            "finish": [
                                234,
                                52
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to connect with a prismatic joint.",
                            "start": [
                                234,
                                47
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x coordinate of the anchor point.",
                            "finish": [
                                234,
                                55
                            ],
                            "name": "x",
                            "rawdesc": "The x coordinate of the anchor point.",
                            "start": [
                                234,
                                54
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the anchor point.",
                            "finish": [
                                234,
                                58
                            ],
                            "name": "y",
                            "rawdesc": "The y coordinate of the anchor point.",
                            "start": [
                                234,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the axis vector.",
                            "finish": [
                                234,
                                62
                            ],
                            "name": "ax",
                            "rawdesc": "The x coordinate of the axis vector.",
                            "start": [
                                234,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the axis vector.",
                            "finish": [
                                234,
                                66
                            ],
                            "name": "ay",
                            "rawdesc": "The y coordinate of the axis vector.",
                            "start": [
                                234,
                                64
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                234,
                                84
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                234,
                                68
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)\n\n\n---\n\n@*param* `body1` — The first body to connect with a prismatic joint.\n\n@*param* `body2` — The second body to connect with a prismatic joint.\n\n@*param* `x` — The x coordinate of the anchor point.\n\n@*param* `y` — The y coordinate of the anchor point.\n\n@*param* `ax` — The x coordinate of the axis vector.\n\n@*param* `ay` — The y coordinate of the axis vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new prismatic joint.",
                    "finish": [
                        234,
                        89
                    ],
                    "rawdesc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)",
                    "returns": [
                        {
                            "desc": "The new prismatic joint.",
                            "name": "joint",
                            "rawdesc": "The new prismatic joint.",
                            "type": "function.return",
                            "view": "love.PrismaticJoint"
                        }
                    ],
                    "start": [
                        234,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newPrismaticJoint(body1: love.Body, body2: love.Body, x: number, y: number, ax: number, ay: number, collideConnected?: boolean)\n  -> joint: love.PrismaticJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    234,
                    39
                ],
                "name": "newPrismaticJoint",
                "rawdesc": "\nCreates a PrismaticJoint between two bodies.\n\nA prismatic joint constrains two bodies to move relatively to each other on a specified axis. It does not allow for relative rotation. Its definition and operation are similar to a  revolute joint, but with translation and force substituted for angle and torque.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPrismaticJoint)",
                "start": [
                    234,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newPrismaticJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)\n\n@*param* `body1` — The first body to connect with a pulley joint.\n\n@*param* `body2` — The second body to connect with a pulley joint.\n\n@*param* `gx1` — The x coordinate of the first body's ground anchor.\n\n@*param* `gy1` — The y coordinate of the first body's ground anchor.\n\n@*param* `gx2` — The x coordinate of the second body's ground anchor.\n\n@*param* `gy2` — The y coordinate of the second body's ground anchor.\n\n@*param* `x1` — The x coordinate of the pulley joint anchor in the first body.\n\n@*param* `y1` — The y coordinate of the pulley joint anchor in the first body.\n\n@*param* `x2` — The x coordinate of the pulley joint anchor in the second body.\n\n@*param* `y2` — The y coordinate of the pulley joint anchor in the second body.\n\n@*param* `ratio` — The joint ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new pulley joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to connect with a pulley joint.",
                            "finish": [
                                259,
                                42
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to connect with a pulley joint.",
                            "start": [
                                259,
                                37
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to connect with a pulley joint.",
                            "finish": [
                                259,
                                49
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to connect with a pulley joint.",
                            "start": [
                                259,
                                44
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x coordinate of the first body's ground anchor.",
                            "finish": [
                                259,
                                54
                            ],
                            "name": "gx1",
                            "rawdesc": "The x coordinate of the first body's ground anchor.",
                            "start": [
                                259,
                                51
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the first body's ground anchor.",
                            "finish": [
                                259,
                                59
                            ],
                            "name": "gy1",
                            "rawdesc": "The y coordinate of the first body's ground anchor.",
                            "start": [
                                259,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the second body's ground anchor.",
                            "finish": [
                                259,
                                64
                            ],
                            "name": "gx2",
                            "rawdesc": "The x coordinate of the second body's ground anchor.",
                            "start": [
                                259,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the second body's ground anchor.",
                            "finish": [
                                259,
                                69
                            ],
                            "name": "gy2",
                            "rawdesc": "The y coordinate of the second body's ground anchor.",
                            "start": [
                                259,
                                66
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the pulley joint anchor in the first body.",
                            "finish": [
                                259,
                                73
                            ],
                            "name": "x1",
                            "rawdesc": "The x coordinate of the pulley joint anchor in the first body.",
                            "start": [
                                259,
                                71
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the pulley joint anchor in the first body.",
                            "finish": [
                                259,
                                77
                            ],
                            "name": "y1",
                            "rawdesc": "The y coordinate of the pulley joint anchor in the first body.",
                            "start": [
                                259,
                                75
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x coordinate of the pulley joint anchor in the second body.",
                            "finish": [
                                259,
                                81
                            ],
                            "name": "x2",
                            "rawdesc": "The x coordinate of the pulley joint anchor in the second body.",
                            "start": [
                                259,
                                79
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y coordinate of the pulley joint anchor in the second body.",
                            "finish": [
                                259,
                                85
                            ],
                            "name": "y2",
                            "rawdesc": "The y coordinate of the pulley joint anchor in the second body.",
                            "start": [
                                259,
                                83
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The joint ratio.",
                            "finish": [
                                259,
                                92
                            ],
                            "name": "ratio",
                            "rawdesc": "The joint ratio.",
                            "start": [
                                259,
                                87
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                259,
                                110
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                259,
                                94
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)\n\n@*param* `body1` — The first body to connect with a pulley joint.\n\n@*param* `body2` — The second body to connect with a pulley joint.\n\n@*param* `gx1` — The x coordinate of the first body's ground anchor.\n\n@*param* `gy1` — The y coordinate of the first body's ground anchor.\n\n@*param* `gx2` — The x coordinate of the second body's ground anchor.\n\n@*param* `gy2` — The y coordinate of the second body's ground anchor.\n\n@*param* `x1` — The x coordinate of the pulley joint anchor in the first body.\n\n@*param* `y1` — The y coordinate of the pulley joint anchor in the first body.\n\n@*param* `x2` — The x coordinate of the pulley joint anchor in the second body.\n\n@*param* `y2` — The y coordinate of the pulley joint anchor in the second body.\n\n@*param* `ratio` — The joint ratio.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new pulley joint.",
                    "finish": [
                        259,
                        115
                    ],
                    "rawdesc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)",
                    "returns": [
                        {
                            "desc": "The new pulley joint.",
                            "name": "joint",
                            "rawdesc": "The new pulley joint.",
                            "type": "function.return",
                            "view": "love.PulleyJoint"
                        }
                    ],
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newPulleyJoint(body1: love.Body, body2: love.Body, gx1: number, gy1: number, gx2: number, gy2: number, x1: number, y1: number, x2: number, y2: number, ratio?: number, collideConnected?: boolean)\n  -> joint: love.PulleyJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    259,
                    36
                ],
                "name": "newPulleyJoint",
                "rawdesc": "\nCreates a PulleyJoint to join two bodies to each other and the ground.\n\nThe pulley joint simulates a pulley with an optional block and tackle. If the ratio parameter has a value different from one, then the simulated rope extends faster on one side than the other. In a pulley joint the total length of the simulated rope is the constant length1 + ratio * length2, which is set when the pulley joint is created.\n\nPulley joints can behave unpredictably if one side is fully extended. It is recommended that the method  setMaxLengths  be used to constrain the maximum lengths each side can attain.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newPulleyJoint)",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newPulleyJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)\n\n\n---\n\n@*param* `width` — The width of the rectangle.\n\n@*param* `height` — The height of the rectangle.\n\n@*return* `shape` — A new PolygonShape.",
                "extends": {
                    "args": [
                        {
                            "desc": "The width of the rectangle.",
                            "finish": [
                                273,
                                45
                            ],
                            "name": "width",
                            "rawdesc": "The width of the rectangle.",
                            "start": [
                                273,
                                40
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the rectangle.",
                            "finish": [
                                273,
                                53
                            ],
                            "name": "height",
                            "rawdesc": "The height of the rectangle.",
                            "start": [
                                273,
                                47
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)\n\n\n---\n\n@*param* `width` — The width of the rectangle.\n\n@*param* `height` — The height of the rectangle.\n\n@*return* `shape` — A new PolygonShape.",
                    "finish": [
                        273,
                        58
                    ],
                    "rawdesc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)",
                    "returns": [
                        {
                            "desc": "A new PolygonShape.",
                            "name": "shape",
                            "rawdesc": "A new PolygonShape.",
                            "type": "function.return",
                            "view": "love.PolygonShape"
                        }
                    ],
                    "start": [
                        273,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newRectangleShape(width: number, height: number)\n  -> shape: love.PolygonShape"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    273,
                    39
                ],
                "name": "newRectangleShape",
                "rawdesc": "\nShorthand for creating rectangular PolygonShapes.\n\nBy default, the local origin is located at the '''center''' of the rectangle as opposed to the top left for graphics.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRectangleShape)",
                "start": [
                    273,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newRectangleShape",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new revolute joint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body.",
                            "finish": [
                                290,
                                44
                            ],
                            "name": "body1",
                            "rawdesc": "The first body.",
                            "start": [
                                290,
                                39
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body.",
                            "finish": [
                                290,
                                51
                            ],
                            "name": "body2",
                            "rawdesc": "The second body.",
                            "start": [
                                290,
                                46
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the connecting point.",
                            "finish": [
                                290,
                                54
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the connecting point.",
                            "start": [
                                290,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the connecting point.",
                            "finish": [
                                290,
                                57
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the connecting point.",
                            "start": [
                                290,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                290,
                                75
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                290,
                                59
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the connecting point.\n\n@*param* `y` — The y position of the connecting point.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new revolute joint.",
                    "finish": [
                        290,
                        80
                    ],
                    "rawdesc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)",
                    "returns": [
                        {
                            "desc": "The new revolute joint.",
                            "name": "joint",
                            "rawdesc": "The new revolute joint.",
                            "type": "function.return",
                            "view": "love.RevoluteJoint"
                        }
                    ],
                    "start": [
                        290,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newRevoluteJoint(body1: love.Body, body2: love.Body, x: number, y: number, collideConnected?: boolean)\n  -> joint: love.RevoluteJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    290,
                    38
                ],
                "name": "newRevoluteJoint",
                "rawdesc": "\nCreates a pivot joint between two bodies.\n\nThis joint connects two bodies to a point around which they can pivot.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRevoluteJoint)",
                "start": [
                    290,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newRevoluteJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point.\n\n@*param* `y1` — The y position of the first anchor point.\n\n@*param* `x2` — The x position of the second anchor point.\n\n@*param* `y2` — The y position of the second anchor point.\n\n@*param* `maxLength` — The maximum distance for the bodies.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new RopeJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                307,
                                40
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                307,
                                35
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                307,
                                47
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                307,
                                42
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the first anchor point.",
                            "finish": [
                                307,
                                51
                            ],
                            "name": "x1",
                            "rawdesc": "The x position of the first anchor point.",
                            "start": [
                                307,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the first anchor point.",
                            "finish": [
                                307,
                                55
                            ],
                            "name": "y1",
                            "rawdesc": "The y position of the first anchor point.",
                            "start": [
                                307,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the second anchor point.",
                            "finish": [
                                307,
                                59
                            ],
                            "name": "x2",
                            "rawdesc": "The x position of the second anchor point.",
                            "start": [
                                307,
                                57
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the second anchor point.",
                            "finish": [
                                307,
                                63
                            ],
                            "name": "y2",
                            "rawdesc": "The y position of the second anchor point.",
                            "start": [
                                307,
                                61
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The maximum distance for the bodies.",
                            "finish": [
                                307,
                                74
                            ],
                            "name": "maxLength",
                            "rawdesc": "The maximum distance for the bodies.",
                            "start": [
                                307,
                                65
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                307,
                                92
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                307,
                                76
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x1` — The x position of the first anchor point.\n\n@*param* `y1` — The y position of the first anchor point.\n\n@*param* `x2` — The x position of the second anchor point.\n\n@*param* `y2` — The y position of the second anchor point.\n\n@*param* `maxLength` — The maximum distance for the bodies.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new RopeJoint.",
                    "finish": [
                        307,
                        97
                    ],
                    "rawdesc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)",
                    "returns": [
                        {
                            "desc": "The new RopeJoint.",
                            "name": "joint",
                            "rawdesc": "The new RopeJoint.",
                            "type": "function.return",
                            "view": "love.RopeJoint"
                        }
                    ],
                    "start": [
                        307,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newRopeJoint(body1: love.Body, body2: love.Body, x1: number, y1: number, x2: number, y2: number, maxLength: number, collideConnected?: boolean)\n  -> joint: love.RopeJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    307,
                    34
                ],
                "name": "newRopeJoint",
                "rawdesc": "\nCreates a joint between two bodies. Its only function is enforcing a max distance between these bodies.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newRopeJoint)",
                "start": [
                    307,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newRopeJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point (world space).\n\n@*param* `y` — The y position of the anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WeldJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body to attach to the joint.",
                            "finish": [
                                323,
                                40
                            ],
                            "name": "body1",
                            "rawdesc": "The first body to attach to the joint.",
                            "start": [
                                323,
                                35
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body to attach to the joint.",
                            "finish": [
                                323,
                                47
                            ],
                            "name": "body2",
                            "rawdesc": "The second body to attach to the joint.",
                            "start": [
                                323,
                                42
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the anchor point (world space).",
                            "finish": [
                                323,
                                50
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the anchor point (world space).",
                            "start": [
                                323,
                                49
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the anchor point (world space).",
                            "finish": [
                                323,
                                53
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the anchor point (world space).",
                            "start": [
                                323,
                                52
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                323,
                                71
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                323,
                                55
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)\n\n\n---\n\n@*param* `body1` — The first body to attach to the joint.\n\n@*param* `body2` — The second body to attach to the joint.\n\n@*param* `x` — The x position of the anchor point (world space).\n\n@*param* `y` — The y position of the anchor point (world space).\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WeldJoint.",
                    "finish": [
                        323,
                        76
                    ],
                    "rawdesc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)",
                    "returns": [
                        {
                            "desc": "The new WeldJoint.",
                            "name": "joint",
                            "rawdesc": "The new WeldJoint.",
                            "type": "function.return",
                            "view": "love.WeldJoint"
                        }
                    ],
                    "start": [
                        323,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newWeldJoint(body1: love.Body, body2: love.Body, x: number, y: number, collideConnected?: boolean)\n  -> joint: love.WeldJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    323,
                    34
                ],
                "name": "newWeldJoint",
                "rawdesc": "\nCreates a constraint joint between two bodies. A WeldJoint essentially glues two bodies together. The constraint is a bit soft, however, due to Box2D's iterative solver.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWeldJoint)",
                "start": [
                    323,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newWeldJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `ax` — The x position of the axis unit vector.\n\n@*param* `ay` — The y position of the axis unit vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WheelJoint.",
                "extends": {
                    "args": [
                        {
                            "desc": "The first body.",
                            "finish": [
                                340,
                                41
                            ],
                            "name": "body1",
                            "rawdesc": "The first body.",
                            "start": [
                                340,
                                36
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The second body.",
                            "finish": [
                                340,
                                48
                            ],
                            "name": "body2",
                            "rawdesc": "The second body.",
                            "start": [
                                340,
                                43
                            ],
                            "type": "local",
                            "view": "love.Body"
                        },
                        {
                            "desc": "The x position of the anchor point.",
                            "finish": [
                                340,
                                51
                            ],
                            "name": "x",
                            "rawdesc": "The x position of the anchor point.",
                            "start": [
                                340,
                                50
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the anchor point.",
                            "finish": [
                                340,
                                54
                            ],
                            "name": "y",
                            "rawdesc": "The y position of the anchor point.",
                            "start": [
                                340,
                                53
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The x position of the axis unit vector.",
                            "finish": [
                                340,
                                58
                            ],
                            "name": "ax",
                            "rawdesc": "The x position of the axis unit vector.",
                            "start": [
                                340,
                                56
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y position of the axis unit vector.",
                            "finish": [
                                340,
                                62
                            ],
                            "name": "ay",
                            "rawdesc": "The y position of the axis unit vector.",
                            "start": [
                                340,
                                60
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Specifies whether the two bodies should collide with each other.",
                            "finish": [
                                340,
                                80
                            ],
                            "name": "collideConnected",
                            "rawdesc": "Specifies whether the two bodies should collide with each other.",
                            "start": [
                                340,
                                64
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)\n\n\n---\n\n@*param* `body1` — The first body.\n\n@*param* `body2` — The second body.\n\n@*param* `x` — The x position of the anchor point.\n\n@*param* `y` — The y position of the anchor point.\n\n@*param* `ax` — The x position of the axis unit vector.\n\n@*param* `ay` — The y position of the axis unit vector.\n\n@*param* `collideConnected` — Specifies whether the two bodies should collide with each other.\n\n@*return* `joint` — The new WheelJoint.",
                    "finish": [
                        340,
                        85
                    ],
                    "rawdesc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)",
                    "returns": [
                        {
                            "desc": "The new WheelJoint.",
                            "name": "joint",
                            "rawdesc": "The new WheelJoint.",
                            "type": "function.return",
                            "view": "love.WheelJoint"
                        }
                    ],
                    "start": [
                        340,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newWheelJoint(body1: love.Body, body2: love.Body, x: number, y: number, ax: number, ay: number, collideConnected?: boolean)\n  -> joint: love.WheelJoint"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    340,
                    35
                ],
                "name": "newWheelJoint",
                "rawdesc": "\nCreates a wheel joint.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWheelJoint)",
                "start": [
                    340,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newWheelJoint",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)\n\n@*param* `xg` — The x component of gravity.\n\n@*param* `yg` — The y component of gravity.\n\n@*param* `sleep` — Whether the bodies in this world are allowed to sleep.\n\n@*return* `world` — A brave new World.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x component of gravity.",
                            "finish": [
                                352,
                                33
                            ],
                            "name": "xg",
                            "rawdesc": "The x component of gravity.",
                            "start": [
                                352,
                                31
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "The y component of gravity.",
                            "finish": [
                                352,
                                37
                            ],
                            "name": "yg",
                            "rawdesc": "The y component of gravity.",
                            "start": [
                                352,
                                35
                            ],
                            "type": "local",
                            "view": "number?"
                        },
                        {
                            "desc": "Whether the bodies in this world are allowed to sleep.",
                            "finish": [
                                352,
                                44
                            ],
                            "name": "sleep",
                            "rawdesc": "Whether the bodies in this world are allowed to sleep.",
                            "start": [
                                352,
                                39
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)\n\n@*param* `xg` — The x component of gravity.\n\n@*param* `yg` — The y component of gravity.\n\n@*param* `sleep` — Whether the bodies in this world are allowed to sleep.\n\n@*return* `world` — A brave new World.",
                    "finish": [
                        352,
                        49
                    ],
                    "rawdesc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)",
                    "returns": [
                        {
                            "desc": "A brave new World.",
                            "name": "world",
                            "rawdesc": "A brave new World.",
                            "type": "function.return",
                            "view": "love.World"
                        }
                    ],
                    "start": [
                        352,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.newWorld(xg?: number, yg?: number, sleep?: boolean)\n  -> world: love.World"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    352,
                    30
                ],
                "name": "newWorld",
                "rawdesc": "\nCreates a new World.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.newWorld)",
                "start": [
                    352,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.newWorld",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)\n\n@*param* `scale` — The scale factor as an integer.",
                "extends": {
                    "args": [
                        {
                            "desc": "The scale factor as an integer.",
                            "finish": [
                                365,
                                36
                            ],
                            "name": "scale",
                            "rawdesc": "The scale factor as an integer.",
                            "start": [
                                365,
                                31
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)\n\n@*param* `scale` — The scale factor as an integer.",
                    "finish": [
                        365,
                        41
                    ],
                    "rawdesc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)",
                    "start": [
                        365,
                        0
                    ],
                    "type": "function",
                    "view": "function love.physics.setMeter(scale: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/physics.lua",
                "finish": [
                    365,
                    30
                ],
                "name": "setMeter",
                "rawdesc": "\nSets the pixels to meter scale factor.\n\nAll coordinates in the physics module are divided by this number and converted to meters, and it creates a convenient way to draw the objects directly to the screen without the need for graphics transformations.\n\nIt is recommended to create shapes no larger than 10 times the scale. This is important because Box2D is tuned to work well with shape sizes from 0.1 to 10 meters. The default meter scale is 30.\n\n\n[Open in Browser](https://love2d.org/wiki/love.physics.setMeter)",
                "start": [
                    365,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.physics.setMeter",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when the game is closed.\n",
                "finish": [
                    274,
                    33
                ],
                "rawdesc": "\nCallback function triggered when the game is closed.\n",
                "start": [
                    274,
                    10
                ],
                "type": "doc.alias",
                "view": "fun():boolean"
            }
        ],
        "fields": [],
        "name": "love.quit",
        "type": "type",
        "view": "love.quit"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when the window is resized, for example if the user resizes the window, or if love.window.setMode is called with an unsupported width or height in fullscreen and the window chooses the closest appropriate size.\n",
                "finish": [
                    279,
                    47
                ],
                "rawdesc": "\nCalled when the window is resized, for example if the user resizes the window, or if love.window.setMode is called with an unsupported width or height in fullscreen and the window chooses the closest appropriate size.\n",
                "start": [
                    279,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(w: number, h: number)"
            }
        ],
        "fields": [],
        "name": "love.resize",
        "type": "type",
        "view": "love.resize"
    },
    {
        "defines": [
            {
                "desc": "\nThe main function, containing the main loop. A sensible default is used when left out.\n",
                "finish": [
                    284,
                    33
                ],
                "rawdesc": "\nThe main function, containing the main loop. A sensible default is used when left out.\n",
                "start": [
                    284,
                    10
                ],
                "type": "doc.alias",
                "view": "fun():function"
            }
        ],
        "fields": [],
        "name": "love.run",
        "type": "type",
        "view": "love.run"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)\n\n@*param* `enable` — Whether to enable or disable deprecation output.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to enable or disable deprecation output.",
                            "finish": [
                                52,
                                41
                            ],
                            "name": "enable",
                            "rawdesc": "Whether to enable or disable deprecation output.",
                            "start": [
                                52,
                                35
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)\n\n@*param* `enable` — Whether to enable or disable deprecation output.",
                    "finish": [
                        52,
                        46
                    ],
                    "rawdesc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)",
                    "start": [
                        52,
                        0
                    ],
                    "type": "function",
                    "view": "function love.setDeprecationOutput(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love.lua",
                "finish": [
                    52,
                    34
                ],
                "name": "setDeprecationOutput",
                "rawdesc": "\nSets whether LÖVE displays warnings when using deprecated functionality. It is disabled by default in fused mode, and enabled by default otherwise.\n\nWhen deprecation output is enabled, the first use of a formally deprecated LÖVE API will show a message at the bottom of the screen for a short time, and print the message to the console.\n\n\n[Open in Browser](https://love2d.org/wiki/love.setDeprecationOutput)",
                "start": [
                    52,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.setDeprecationOutput",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "extends": {
                    "desc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.sound"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "sound",
                "rawdesc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.sound",
                "visible": "public"
            }
        ],
        "name": "love.sound",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nThis module is responsible for decoding sound files. It can't play the sounds, see love.audio for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.sound",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)\n\n\n---\n\n@*param* `file` — The file with encoded sound data.\n\n@*param* `buffer` — The size of each decoded chunk, in bytes.\n\n@*return* `decoder` — A new Decoder object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file with encoded sound data.",
                            "finish": [
                                21,
                                35
                            ],
                            "name": "file",
                            "rawdesc": "The file with encoded sound data.",
                            "start": [
                                21,
                                31
                            ],
                            "type": "local",
                            "view": "love.File"
                        },
                        {
                            "desc": "The size of each decoded chunk, in bytes.",
                            "finish": [
                                21,
                                43
                            ],
                            "name": "buffer",
                            "rawdesc": "The size of each decoded chunk, in bytes.",
                            "start": [
                                21,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)\n\n\n---\n\n@*param* `file` — The file with encoded sound data.\n\n@*param* `buffer` — The size of each decoded chunk, in bytes.\n\n@*return* `decoder` — A new Decoder object.",
                    "finish": [
                        21,
                        48
                    ],
                    "rawdesc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)",
                    "returns": [
                        {
                            "desc": "A new Decoder object.",
                            "name": "decoder",
                            "rawdesc": "A new Decoder object.",
                            "type": "function.return",
                            "view": "love.Decoder"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function love.sound.newDecoder(file: love.File, buffer?: number)\n  -> decoder: love.Decoder"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    21,
                    30
                ],
                "name": "newDecoder",
                "rawdesc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)",
                "start": [
                    21,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)\n\n\n---\n\n@*param* `filename` — The file name of the file to load.\n\n@*return* `soundData` — A new SoundData object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file name of the file to load.",
                            "finish": [
                                36,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The file name of the file to load.",
                            "start": [
                                36,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)\n\n\n---\n\n@*param* `filename` — The file name of the file to load.\n\n@*return* `soundData` — A new SoundData object.",
                    "finish": [
                        36,
                        46
                    ],
                    "rawdesc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)",
                    "returns": [
                        {
                            "desc": "A new SoundData object.",
                            "name": "soundData",
                            "rawdesc": "A new SoundData object.",
                            "type": "function.return",
                            "view": "love.SoundData"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.sound.newSoundData(filename: string)\n  -> soundData: love.SoundData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    36,
                    32
                ],
                "name": "newSoundData",
                "rawdesc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.sound",
        "type": "type",
        "view": "love.sound"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)\n\n\n---\n\n@*param* `file` — The file with encoded sound data.\n\n@*param* `buffer` — The size of each decoded chunk, in bytes.\n\n@*return* `decoder` — A new Decoder object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file with encoded sound data.",
                            "finish": [
                                21,
                                35
                            ],
                            "name": "file",
                            "rawdesc": "The file with encoded sound data.",
                            "start": [
                                21,
                                31
                            ],
                            "type": "local",
                            "view": "love.File"
                        },
                        {
                            "desc": "The size of each decoded chunk, in bytes.",
                            "finish": [
                                21,
                                43
                            ],
                            "name": "buffer",
                            "rawdesc": "The size of each decoded chunk, in bytes.",
                            "start": [
                                21,
                                37
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)\n\n\n---\n\n@*param* `file` — The file with encoded sound data.\n\n@*param* `buffer` — The size of each decoded chunk, in bytes.\n\n@*return* `decoder` — A new Decoder object.",
                    "finish": [
                        21,
                        48
                    ],
                    "rawdesc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)",
                    "returns": [
                        {
                            "desc": "A new Decoder object.",
                            "name": "decoder",
                            "rawdesc": "A new Decoder object.",
                            "type": "function.return",
                            "view": "love.Decoder"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function love.sound.newDecoder(file: love.File, buffer?: number)\n  -> decoder: love.Decoder"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    21,
                    30
                ],
                "name": "newDecoder",
                "rawdesc": "\nAttempts to find a decoder for the encoded sound data in the specified file.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newDecoder)",
                "start": [
                    21,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.sound.newDecoder",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)\n\n\n---\n\n@*param* `filename` — The file name of the file to load.\n\n@*return* `soundData` — A new SoundData object.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file name of the file to load.",
                            "finish": [
                                36,
                                41
                            ],
                            "name": "filename",
                            "rawdesc": "The file name of the file to load.",
                            "start": [
                                36,
                                33
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)\n\n\n---\n\n@*param* `filename` — The file name of the file to load.\n\n@*return* `soundData` — A new SoundData object.",
                    "finish": [
                        36,
                        46
                    ],
                    "rawdesc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)",
                    "returns": [
                        {
                            "desc": "A new SoundData object.",
                            "name": "soundData",
                            "rawdesc": "A new SoundData object.",
                            "type": "function.return",
                            "view": "love.SoundData"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.sound.newSoundData(filename: string)\n  -> soundData: love.SoundData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/sound.lua",
                "finish": [
                    36,
                    32
                ],
                "name": "newSoundData",
                "rawdesc": "\nCreates new SoundData from a filepath, File, or Decoder. It's also possible to create SoundData with a custom sample rate, channel and bit depth.\n\nThe sound data will be decoded to the memory in a raw format. It is recommended to create only short sounds like effects, as a 3 minute song uses 30 MB of memory this way.\n\n\n[Open in Browser](https://love2d.org/wiki/love.sound.newSoundData)",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.sound.newSoundData",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    8,
                    21
                ],
                "rawdesc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.system",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)\n\n@*return* `text` — The text currently held in the system's clipboard.",
                "extends": {
                    "args": [],
                    "desc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)\n\n@*return* `text` — The text currently held in the system's clipboard.",
                    "finish": [
                        18,
                        43
                    ],
                    "rawdesc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)",
                    "returns": [
                        {
                            "desc": "The text currently held in the system's clipboard.",
                            "name": "text",
                            "rawdesc": "The text currently held in the system's clipboard.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getClipboardText()\n  -> text: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    18,
                    37
                ],
                "name": "getClipboardText",
                "rawdesc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)\n\n@*return* `osString` — The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)\n\n@*return* `osString` — The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                    "finish": [
                        27,
                        32
                    ],
                    "rawdesc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)",
                    "returns": [
                        {
                            "desc": "The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                            "name": "osString",
                            "rawdesc": "The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getOS()\n  -> osString: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    27,
                    26
                ],
                "name": "getOS",
                "rawdesc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n@*return* `state` — The basic state of the power supply.\n\n@*return* `percent` — Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.\n\n@*return* `seconds` — Seconds of battery life left. nil if the value can't be determined or there's no battery.\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n@*return* `state` — The basic state of the power supply.\n\n@*return* `percent` — Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.\n\n@*return* `seconds` — Seconds of battery life left. nil if the value can't be determined or there's no battery.\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                    "finish": [
                        38,
                        39
                    ],
                    "rawdesc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                    "returns": [
                        {
                            "desc": "The basic state of the power supply.",
                            "name": "state",
                            "rawdesc": "The basic state of the power supply.",
                            "type": "function.return",
                            "view": "\"battery\"|\"charged\"|\"charging\"|\"nobattery\"|\"unknown\""
                        },
                        {
                            "desc": "Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.",
                            "name": "percent",
                            "rawdesc": "Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Seconds of battery life left. nil if the value can't be determined or there's no battery.",
                            "name": "seconds",
                            "rawdesc": "Seconds of battery life left. nil if the value can't be determined or there's no battery.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        38,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getPowerInfo()\n  -> state: \"battery\"|\"charged\"|\"charging\"|\"nobattery\"|\"unknown\"\n  2. percent: number\n  3. seconds: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    38,
                    33
                ],
                "name": "getPowerInfo",
                "rawdesc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                "start": [
                    38,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)\n\n@*return* `processorCount` — Amount of logical processors.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)\n\n@*return* `processorCount` — Amount of logical processors.",
                    "finish": [
                        47,
                        44
                    ],
                    "rawdesc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)",
                    "returns": [
                        {
                            "desc": "Amount of logical processors.",
                            "name": "processorCount",
                            "rawdesc": "Amount of logical processors.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        47,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getProcessorCount()\n  -> processorCount: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    47,
                    38
                ],
                "name": "getProcessorCount",
                "rawdesc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)",
                "start": [
                    47,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)\n\n@*return* `backgroundmusic` — True if the user is playing music in the background via another app, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)\n\n@*return* `backgroundmusic` — True if the user is playing music in the background via another app, false otherwise.",
                    "finish": [
                        58,
                        45
                    ],
                    "rawdesc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)",
                    "returns": [
                        {
                            "desc": "True if the user is playing music in the background via another app, false otherwise.",
                            "name": "backgroundmusic",
                            "rawdesc": "True if the user is playing music in the background via another app, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.hasBackgroundMusic()\n  -> backgroundmusic: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    58,
                    39
                ],
                "name": "hasBackgroundMusic",
                "rawdesc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)\n\n@*param* `url` — The URL to open. Must be formatted as a proper URL.\n\n@*return* `success` — Whether the URL was opened successfully.",
                "extends": {
                    "args": [
                        {
                            "desc": "The URL to open. Must be formatted as a proper URL.",
                            "finish": [
                                68,
                                32
                            ],
                            "name": "url",
                            "rawdesc": "The URL to open. Must be formatted as a proper URL.",
                            "start": [
                                68,
                                29
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)\n\n@*param* `url` — The URL to open. Must be formatted as a proper URL.\n\n@*return* `success` — Whether the URL was opened successfully.",
                    "finish": [
                        68,
                        37
                    ],
                    "rawdesc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)",
                    "returns": [
                        {
                            "desc": "Whether the URL was opened successfully.",
                            "name": "success",
                            "rawdesc": "Whether the URL was opened successfully.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.openURL(url: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    68,
                    28
                ],
                "name": "openURL",
                "rawdesc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)\n\n@*param* `text` — The new text to hold in the system's clipboard.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new text to hold in the system's clipboard.",
                            "finish": [
                                77,
                                42
                            ],
                            "name": "text",
                            "rawdesc": "The new text to hold in the system's clipboard.",
                            "start": [
                                77,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)\n\n@*param* `text` — The new text to hold in the system's clipboard.",
                    "finish": [
                        77,
                        47
                    ],
                    "rawdesc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)",
                    "start": [
                        77,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.setClipboardText(text: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    77,
                    37
                ],
                "name": "setClipboardText",
                "rawdesc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)",
                "start": [
                    77,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)\n\n@*param* `seconds` — The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                "extends": {
                    "args": [
                        {
                            "desc": "The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                            "finish": [
                                86,
                                36
                            ],
                            "name": "seconds",
                            "rawdesc": "The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                            "start": [
                                86,
                                29
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)\n\n@*param* `seconds` — The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                    "finish": [
                        86,
                        41
                    ],
                    "rawdesc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)",
                    "start": [
                        86,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.vibrate(seconds?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    86,
                    28
                ],
                "name": "vibrate",
                "rawdesc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)",
                "start": [
                    86,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system",
        "type": "type",
        "view": "love.system"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                "extends": {
                    "desc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                    "finish": [
                        9,
                        16
                    ],
                    "rawdesc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                    "start": [
                        9,
                        14
                    ],
                    "type": "table",
                    "view": "love.system"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    9,
                    11
                ],
                "name": "system",
                "rawdesc": "\nProvides access to information about the user's system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.system",
                "visible": "public"
            }
        ],
        "name": "love.system",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)\n\n@*return* `text` — The text currently held in the system's clipboard.",
                "extends": {
                    "args": [],
                    "desc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)\n\n@*return* `text` — The text currently held in the system's clipboard.",
                    "finish": [
                        18,
                        43
                    ],
                    "rawdesc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)",
                    "returns": [
                        {
                            "desc": "The text currently held in the system's clipboard.",
                            "name": "text",
                            "rawdesc": "The text currently held in the system's clipboard.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getClipboardText()\n  -> text: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    18,
                    37
                ],
                "name": "getClipboardText",
                "rawdesc": "\nGets text from the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getClipboardText)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.getClipboardText",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)\n\n@*return* `osString` — The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)\n\n@*return* `osString` — The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                    "finish": [
                        27,
                        32
                    ],
                    "rawdesc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)",
                    "returns": [
                        {
                            "desc": "The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                            "name": "osString",
                            "rawdesc": "The current operating system. 'OS X', 'Windows', 'Linux', 'Android' or 'iOS'.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getOS()\n  -> osString: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    27,
                    26
                ],
                "name": "getOS",
                "rawdesc": "\nGets the current operating system. In general, LÖVE abstracts away the need to know the current operating system, but there are a few cases where it can be useful (especially in combination with os.execute.)\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getOS)",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.getOS",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n@*return* `state` — The basic state of the power supply.\n\n@*return* `percent` — Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.\n\n@*return* `seconds` — Seconds of battery life left. nil if the value can't be determined or there's no battery.\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n@*return* `state` — The basic state of the power supply.\n\n@*return* `percent` — Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.\n\n@*return* `seconds` — Seconds of battery life left. nil if the value can't be determined or there's no battery.\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                    "finish": [
                        38,
                        39
                    ],
                    "rawdesc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                    "returns": [
                        {
                            "desc": "The basic state of the power supply.",
                            "name": "state",
                            "rawdesc": "The basic state of the power supply.",
                            "type": "function.return",
                            "view": "\"battery\"|\"charged\"|\"charging\"|\"nobattery\"|\"unknown\""
                        },
                        {
                            "desc": "Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.",
                            "name": "percent",
                            "rawdesc": "Percentage of battery life left, between 0 and 100. nil if the value can't be determined or there's no battery.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Seconds of battery life left. nil if the value can't be determined or there's no battery.",
                            "name": "seconds",
                            "rawdesc": "Seconds of battery life left. nil if the value can't be determined or there's no battery.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        38,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getPowerInfo()\n  -> state: \"battery\"|\"charged\"|\"charging\"|\"nobattery\"|\"unknown\"\n  2. percent: number\n  3. seconds: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    38,
                    33
                ],
                "name": "getPowerInfo",
                "rawdesc": "\nGets information about the system's power supply.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getPowerInfo)\n\n\n```lua\n-- \n-- The basic state of the system's power supply.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/PowerState)\n-- \nstate:\n    | \"unknown\" -- Cannot determine power status.\n    | \"battery\" -- Not plugged in, running on a battery.\n    | \"nobattery\" -- Plugged in, no battery available.\n    | \"charging\" -- Plugged in, charging battery.\n    | \"charged\" -- Plugged in, battery is fully charged.\n```",
                "start": [
                    38,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.getPowerInfo",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)\n\n@*return* `processorCount` — Amount of logical processors.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)\n\n@*return* `processorCount` — Amount of logical processors.",
                    "finish": [
                        47,
                        44
                    ],
                    "rawdesc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)",
                    "returns": [
                        {
                            "desc": "Amount of logical processors.",
                            "name": "processorCount",
                            "rawdesc": "Amount of logical processors.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        47,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.getProcessorCount()\n  -> processorCount: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    47,
                    38
                ],
                "name": "getProcessorCount",
                "rawdesc": "\nGets the amount of logical processor in the system.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.getProcessorCount)",
                "start": [
                    47,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.getProcessorCount",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)\n\n@*return* `backgroundmusic` — True if the user is playing music in the background via another app, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)\n\n@*return* `backgroundmusic` — True if the user is playing music in the background via another app, false otherwise.",
                    "finish": [
                        58,
                        45
                    ],
                    "rawdesc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)",
                    "returns": [
                        {
                            "desc": "True if the user is playing music in the background via another app, false otherwise.",
                            "name": "backgroundmusic",
                            "rawdesc": "True if the user is playing music in the background via another app, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        58,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.hasBackgroundMusic()\n  -> backgroundmusic: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    58,
                    39
                ],
                "name": "hasBackgroundMusic",
                "rawdesc": "\nGets whether another application on the system is playing music in the background.\n\nCurrently this is implemented on iOS and Android, and will always return false on other operating systems. The t.audio.mixwithsystem flag in love.conf can be used to configure whether background audio / music from other apps should play while LÖVE is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.hasBackgroundMusic)",
                "start": [
                    58,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.hasBackgroundMusic",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)\n\n@*param* `url` — The URL to open. Must be formatted as a proper URL.\n\n@*return* `success` — Whether the URL was opened successfully.",
                "extends": {
                    "args": [
                        {
                            "desc": "The URL to open. Must be formatted as a proper URL.",
                            "finish": [
                                68,
                                32
                            ],
                            "name": "url",
                            "rawdesc": "The URL to open. Must be formatted as a proper URL.",
                            "start": [
                                68,
                                29
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)\n\n@*param* `url` — The URL to open. Must be formatted as a proper URL.\n\n@*return* `success` — Whether the URL was opened successfully.",
                    "finish": [
                        68,
                        37
                    ],
                    "rawdesc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)",
                    "returns": [
                        {
                            "desc": "Whether the URL was opened successfully.",
                            "name": "success",
                            "rawdesc": "Whether the URL was opened successfully.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.openURL(url: string)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    68,
                    28
                ],
                "name": "openURL",
                "rawdesc": "\nOpens a URL with the user's web or file browser.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.openURL)",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.openURL",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)\n\n@*param* `text` — The new text to hold in the system's clipboard.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new text to hold in the system's clipboard.",
                            "finish": [
                                77,
                                42
                            ],
                            "name": "text",
                            "rawdesc": "The new text to hold in the system's clipboard.",
                            "start": [
                                77,
                                38
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)\n\n@*param* `text` — The new text to hold in the system's clipboard.",
                    "finish": [
                        77,
                        47
                    ],
                    "rawdesc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)",
                    "start": [
                        77,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.setClipboardText(text: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    77,
                    37
                ],
                "name": "setClipboardText",
                "rawdesc": "\nPuts text in the clipboard.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.setClipboardText)",
                "start": [
                    77,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.setClipboardText",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)\n\n@*param* `seconds` — The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                "extends": {
                    "args": [
                        {
                            "desc": "The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                            "finish": [
                                86,
                                36
                            ],
                            "name": "seconds",
                            "rawdesc": "The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                            "start": [
                                86,
                                29
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)\n\n@*param* `seconds` — The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.",
                    "finish": [
                        86,
                        41
                    ],
                    "rawdesc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)",
                    "start": [
                        86,
                        0
                    ],
                    "type": "function",
                    "view": "function love.system.vibrate(seconds?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/system.lua",
                "finish": [
                    86,
                    28
                ],
                "name": "vibrate",
                "rawdesc": "\nCauses the device to vibrate, if possible. Currently this will only work on Android and iOS devices that have a built-in vibration motor.\n\n\n[Open in Browser](https://love2d.org/wiki/love.system.vibrate)",
                "start": [
                    86,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.system.vibrate",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when the candidate text for an IME (Input Method Editor) has changed.\n\nThe candidate text is not the final text that the user will eventually choose. Use love.textinput for that.\n",
                "finish": [
                    291,
                    74
                ],
                "rawdesc": "\nCalled when the candidate text for an IME (Input Method Editor) has changed.\n\nThe candidate text is not the final text that the user will eventually choose. Use love.textinput for that.\n",
                "start": [
                    291,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(text: string, start: number, length: number)"
            }
        ],
        "fields": [],
        "name": "love.textedited",
        "type": "type",
        "view": "love.textedited"
    },
    {
        "defines": [
            {
                "desc": "\nCalled when text has been entered by the user. For example if shift-2 is pressed on an American keyboard layout, the text '@' will be generated.\n",
                "finish": [
                    296,
                    42
                ],
                "rawdesc": "\nCalled when text has been entered by the user. For example if shift-2 is pressed on an American keyboard layout, the text '@' will be generated.\n",
                "start": [
                    296,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(text: string)"
            }
        ],
        "fields": [],
        "name": "love.textinput",
        "type": "type",
        "view": "love.textinput"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    14,
                    21
                ],
                "rawdesc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "start": [
                    14,
                    10
                ],
                "type": "doc.class",
                "view": "love.thread",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)\n\n@*param* `name` — The name of the channel you want to create or retrieve.\n\n@*return* `channel` — The Channel object associated with the name.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the channel you want to create or retrieve.",
                            "finish": [
                                25,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "The name of the channel you want to create or retrieve.",
                            "start": [
                                25,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)\n\n@*param* `name` — The name of the channel you want to create or retrieve.\n\n@*return* `channel` — The Channel object associated with the name.",
                    "finish": [
                        25,
                        41
                    ],
                    "rawdesc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)",
                    "returns": [
                        {
                            "desc": "The Channel object associated with the name.",
                            "name": "channel",
                            "rawdesc": "The Channel object associated with the name.",
                            "type": "function.return",
                            "view": "love.Channel"
                        }
                    ],
                    "start": [
                        25,
                        0
                    ],
                    "type": "function",
                    "view": "function love.thread.getChannel(name: string)\n  -> channel: love.Channel"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    25,
                    31
                ],
                "name": "getChannel",
                "rawdesc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)",
                "start": [
                    25,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)\n\n@*return* `channel` — The new Channel object.",
                "extends": {
                    "args": [],
                    "desc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)\n\n@*return* `channel` — The new Channel object.",
                    "finish": [
                        36,
                        37
                    ],
                    "rawdesc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)",
                    "returns": [
                        {
                            "desc": "The new Channel object.",
                            "name": "channel",
                            "rawdesc": "The new Channel object.",
                            "type": "function.return",
                            "view": "love.Channel"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.thread.newChannel()\n  -> channel: love.Channel"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    36,
                    31
                ],
                "name": "newChannel",
                "rawdesc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)\n\n\n---\n\n@*param* `filename` — The name of the Lua file to use as the source.\n\n@*return* `thread` — A new Thread that has yet to be started.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the Lua file to use as the source.",
                            "finish": [
                                48,
                                39
                            ],
                            "name": "filename",
                            "rawdesc": "The name of the Lua file to use as the source.",
                            "start": [
                                48,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)\n\n\n---\n\n@*param* `filename` — The name of the Lua file to use as the source.\n\n@*return* `thread` — A new Thread that has yet to be started.",
                    "finish": [
                        48,
                        44
                    ],
                    "rawdesc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)",
                    "returns": [
                        {
                            "desc": "A new Thread that has yet to be started.",
                            "name": "thread",
                            "rawdesc": "A new Thread that has yet to be started.",
                            "type": "function.return",
                            "view": "love.Thread"
                        }
                    ],
                    "start": [
                        48,
                        0
                    ],
                    "type": "function",
                    "view": "function love.thread.newThread(filename: string)\n  -> thread: love.Thread"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    48,
                    30
                ],
                "name": "newThread",
                "rawdesc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)",
                "start": [
                    48,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.thread",
        "type": "type",
        "view": "love.thread"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "extends": {
                    "desc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                    "finish": [
                        15,
                        16
                    ],
                    "rawdesc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                    "start": [
                        15,
                        14
                    ],
                    "type": "table",
                    "view": "love.thread"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    15,
                    11
                ],
                "name": "thread",
                "rawdesc": "\nAllows you to work with threads.\n\nThreads are separate Lua environments, running in parallel to the main code. As their code runs separately, they can be used to compute complex operations without adversely affecting the frame rate of the main thread. However, as they are separate environments, they cannot access the variables and functions of the main thread, and communication between threads is limited.\n\nAll LOVE objects (userdata) are shared among threads so you'll only have to send their references across threads. You may run into concurrency issues if you manipulate an object on multiple threads at the same time.\n\nWhen a Thread is started, it only loads the love.thread module. Every other module has to be loaded with require.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread)\n",
                "start": [
                    15,
                    0
                ],
                "type": "setfield",
                "view": "love.thread",
                "visible": "public"
            }
        ],
        "name": "love.thread",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)\n\n@*param* `name` — The name of the channel you want to create or retrieve.\n\n@*return* `channel` — The Channel object associated with the name.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the channel you want to create or retrieve.",
                            "finish": [
                                25,
                                36
                            ],
                            "name": "name",
                            "rawdesc": "The name of the channel you want to create or retrieve.",
                            "start": [
                                25,
                                32
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)\n\n@*param* `name` — The name of the channel you want to create or retrieve.\n\n@*return* `channel` — The Channel object associated with the name.",
                    "finish": [
                        25,
                        41
                    ],
                    "rawdesc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)",
                    "returns": [
                        {
                            "desc": "The Channel object associated with the name.",
                            "name": "channel",
                            "rawdesc": "The Channel object associated with the name.",
                            "type": "function.return",
                            "view": "love.Channel"
                        }
                    ],
                    "start": [
                        25,
                        0
                    ],
                    "type": "function",
                    "view": "function love.thread.getChannel(name: string)\n  -> channel: love.Channel"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    25,
                    31
                ],
                "name": "getChannel",
                "rawdesc": "\nCreates or retrieves a named thread channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.getChannel)",
                "start": [
                    25,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.thread.getChannel",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)\n\n@*return* `channel` — The new Channel object.",
                "extends": {
                    "args": [],
                    "desc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)\n\n@*return* `channel` — The new Channel object.",
                    "finish": [
                        36,
                        37
                    ],
                    "rawdesc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)",
                    "returns": [
                        {
                            "desc": "The new Channel object.",
                            "name": "channel",
                            "rawdesc": "The new Channel object.",
                            "type": "function.return",
                            "view": "love.Channel"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.thread.newChannel()\n  -> channel: love.Channel"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    36,
                    31
                ],
                "name": "newChannel",
                "rawdesc": "\nCreate a new unnamed thread channel.\n\nOne use for them is to pass new unnamed channels to other threads via Channel:push on a named channel.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newChannel)",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.thread.newChannel",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)\n\n\n---\n\n@*param* `filename` — The name of the Lua file to use as the source.\n\n@*return* `thread` — A new Thread that has yet to be started.",
                "extends": {
                    "args": [
                        {
                            "desc": "The name of the Lua file to use as the source.",
                            "finish": [
                                48,
                                39
                            ],
                            "name": "filename",
                            "rawdesc": "The name of the Lua file to use as the source.",
                            "start": [
                                48,
                                31
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)\n\n\n---\n\n@*param* `filename` — The name of the Lua file to use as the source.\n\n@*return* `thread` — A new Thread that has yet to be started.",
                    "finish": [
                        48,
                        44
                    ],
                    "rawdesc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)",
                    "returns": [
                        {
                            "desc": "A new Thread that has yet to be started.",
                            "name": "thread",
                            "rawdesc": "A new Thread that has yet to be started.",
                            "type": "function.return",
                            "view": "love.Thread"
                        }
                    ],
                    "start": [
                        48,
                        0
                    ],
                    "type": "function",
                    "view": "function love.thread.newThread(filename: string)\n  -> thread: love.Thread"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/thread.lua",
                "finish": [
                    48,
                    30
                ],
                "name": "newThread",
                "rawdesc": "\nCreates a new Thread from a filename, string or FileData object containing Lua code.\n\n\n[Open in Browser](https://love2d.org/wiki/love.thread.newThread)",
                "start": [
                    48,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.thread.newThread",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a Thread encounters an error.\n",
                "finish": [
                    301,
                    69
                ],
                "rawdesc": "\nCallback function triggered when a Thread encounters an error.\n",
                "start": [
                    301,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(thread: love.Thread, errorstr: string)"
            }
        ],
        "fields": [],
        "name": "love.threaderror",
        "type": "type",
        "view": "love.threaderror"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.timer",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)\n\n@*return* `delta` — The average delta time over the last second.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)\n\n@*return* `delta` — The average delta time over the last second.",
                    "finish": [
                        18,
                        41
                    ],
                    "rawdesc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)",
                    "returns": [
                        {
                            "desc": "The average delta time over the last second.",
                            "name": "delta",
                            "rawdesc": "The average delta time over the last second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getAverageDelta()\n  -> delta: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    18,
                    35
                ],
                "name": "getAverageDelta",
                "rawdesc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)\n\n@*return* `dt` — The time passed (in seconds).",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)\n\n@*return* `dt` — The time passed (in seconds).",
                    "finish": [
                        27,
                        34
                    ],
                    "rawdesc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)",
                    "returns": [
                        {
                            "desc": "The time passed (in seconds).",
                            "name": "dt",
                            "rawdesc": "The time passed (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getDelta()\n  -> dt: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    27,
                    28
                ],
                "name": "getDelta",
                "rawdesc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)\n\n@*return* `fps` — The current FPS.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)\n\n@*return* `fps` — The current FPS.",
                    "finish": [
                        36,
                        32
                    ],
                    "rawdesc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)",
                    "returns": [
                        {
                            "desc": "The current FPS.",
                            "name": "fps",
                            "rawdesc": "The current FPS.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getFPS()\n  -> fps: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    36,
                    26
                ],
                "name": "getFPS",
                "rawdesc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)\n\n@*return* `time` — The time in seconds. Given as a decimal, accurate to the microsecond.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)\n\n@*return* `time` — The time in seconds. Given as a decimal, accurate to the microsecond.",
                    "finish": [
                        47,
                        33
                    ],
                    "rawdesc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)",
                    "returns": [
                        {
                            "desc": "The time in seconds. Given as a decimal, accurate to the microsecond.",
                            "name": "time",
                            "rawdesc": "The time in seconds. Given as a decimal, accurate to the microsecond.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        47,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getTime()\n  -> time: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    47,
                    27
                ],
                "name": "getTime",
                "rawdesc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)",
                "start": [
                    47,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)\n\n@*param* `s` — Seconds to sleep for.",
                "extends": {
                    "args": [
                        {
                            "desc": "Seconds to sleep for.",
                            "finish": [
                                56,
                                27
                            ],
                            "name": "s",
                            "rawdesc": "Seconds to sleep for.",
                            "start": [
                                56,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)\n\n@*param* `s` — Seconds to sleep for.",
                    "finish": [
                        56,
                        32
                    ],
                    "rawdesc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)",
                    "start": [
                        56,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.sleep(s: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    56,
                    25
                ],
                "name": "sleep",
                "rawdesc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)",
                "start": [
                    56,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)\n\n@*return* `dt` — The time passed (in seconds).",
                "extends": {
                    "args": [],
                    "desc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)\n\n@*return* `dt` — The time passed (in seconds).",
                    "finish": [
                        67,
                        30
                    ],
                    "rawdesc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)",
                    "returns": [
                        {
                            "desc": "The time passed (in seconds).",
                            "name": "dt",
                            "rawdesc": "The time passed (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        67,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.step()\n  -> dt: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    67,
                    24
                ],
                "name": "step",
                "rawdesc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)",
                "start": [
                    67,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer",
        "type": "type",
        "view": "love.timer"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                "extends": {
                    "desc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.timer"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "timer",
                "rawdesc": "\nProvides an interface to the user's clock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.timer",
                "visible": "public"
            }
        ],
        "name": "love.timer",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)\n\n@*return* `delta` — The average delta time over the last second.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)\n\n@*return* `delta` — The average delta time over the last second.",
                    "finish": [
                        18,
                        41
                    ],
                    "rawdesc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)",
                    "returns": [
                        {
                            "desc": "The average delta time over the last second.",
                            "name": "delta",
                            "rawdesc": "The average delta time over the last second.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        18,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getAverageDelta()\n  -> delta: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    18,
                    35
                ],
                "name": "getAverageDelta",
                "rawdesc": "\nReturns the average delta time (seconds per frame) over the last second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getAverageDelta)",
                "start": [
                    18,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer.getAverageDelta",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)\n\n@*return* `dt` — The time passed (in seconds).",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)\n\n@*return* `dt` — The time passed (in seconds).",
                    "finish": [
                        27,
                        34
                    ],
                    "rawdesc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)",
                    "returns": [
                        {
                            "desc": "The time passed (in seconds).",
                            "name": "dt",
                            "rawdesc": "The time passed (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        27,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getDelta()\n  -> dt: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    27,
                    28
                ],
                "name": "getDelta",
                "rawdesc": "\nReturns the time between the last two frames.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getDelta)",
                "start": [
                    27,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer.getDelta",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)\n\n@*return* `fps` — The current FPS.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)\n\n@*return* `fps` — The current FPS.",
                    "finish": [
                        36,
                        32
                    ],
                    "rawdesc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)",
                    "returns": [
                        {
                            "desc": "The current FPS.",
                            "name": "fps",
                            "rawdesc": "The current FPS.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        36,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getFPS()\n  -> fps: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    36,
                    26
                ],
                "name": "getFPS",
                "rawdesc": "\nReturns the current frames per second.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getFPS)",
                "start": [
                    36,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer.getFPS",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)\n\n@*return* `time` — The time in seconds. Given as a decimal, accurate to the microsecond.",
                "extends": {
                    "args": [],
                    "desc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)\n\n@*return* `time` — The time in seconds. Given as a decimal, accurate to the microsecond.",
                    "finish": [
                        47,
                        33
                    ],
                    "rawdesc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)",
                    "returns": [
                        {
                            "desc": "The time in seconds. Given as a decimal, accurate to the microsecond.",
                            "name": "time",
                            "rawdesc": "The time in seconds. Given as a decimal, accurate to the microsecond.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        47,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.getTime()\n  -> time: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    47,
                    27
                ],
                "name": "getTime",
                "rawdesc": "\nReturns the value of a timer with an unspecified starting time.\n\nThis function should only be used to calculate differences between points in time, as the starting time of the timer is unknown.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.getTime)",
                "start": [
                    47,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer.getTime",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)\n\n@*param* `s` — Seconds to sleep for.",
                "extends": {
                    "args": [
                        {
                            "desc": "Seconds to sleep for.",
                            "finish": [
                                56,
                                27
                            ],
                            "name": "s",
                            "rawdesc": "Seconds to sleep for.",
                            "start": [
                                56,
                                26
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)\n\n@*param* `s` — Seconds to sleep for.",
                    "finish": [
                        56,
                        32
                    ],
                    "rawdesc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)",
                    "start": [
                        56,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.sleep(s: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    56,
                    25
                ],
                "name": "sleep",
                "rawdesc": "\nPauses the current thread for the specified amount of time.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.sleep)",
                "start": [
                    56,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer.sleep",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)\n\n@*return* `dt` — The time passed (in seconds).",
                "extends": {
                    "args": [],
                    "desc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)\n\n@*return* `dt` — The time passed (in seconds).",
                    "finish": [
                        67,
                        30
                    ],
                    "rawdesc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)",
                    "returns": [
                        {
                            "desc": "The time passed (in seconds).",
                            "name": "dt",
                            "rawdesc": "The time passed (in seconds).",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        67,
                        0
                    ],
                    "type": "function",
                    "view": "function love.timer.step()\n  -> dt: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/timer.lua",
                "finish": [
                    67,
                    24
                ],
                "name": "step",
                "rawdesc": "\nMeasures the time between two frames.\n\nCalling this changes the return value of love.timer.getDelta.\n\n\n[Open in Browser](https://love2d.org/wiki/love.timer.step)",
                "start": [
                    67,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.timer.step",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                "extends": {
                    "desc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                    "finish": [
                        9,
                        15
                    ],
                    "rawdesc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                    "start": [
                        9,
                        13
                    ],
                    "type": "table",
                    "view": "love.touch"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    9,
                    10
                ],
                "name": "touch",
                "rawdesc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.touch",
                "visible": "public"
            }
        ],
        "name": "love.touch",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    8,
                    20
                ],
                "rawdesc": "\nProvides an interface to touch-screen presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.touch",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `x` — The position along the x-axis of the touch-press inside the window, in pixels.\n\n@*return* `y` — The position along the y-axis of the touch-press inside the window, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "finish": [
                                20,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "start": [
                                20,
                                32
                            ],
                            "type": "local",
                            "view": "lightuserdata"
                        }
                    ],
                    "desc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `x` — The position along the x-axis of the touch-press inside the window, in pixels.\n\n@*return* `y` — The position along the y-axis of the touch-press inside the window, in pixels.",
                    "finish": [
                        20,
                        39
                    ],
                    "rawdesc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)",
                    "returns": [
                        {
                            "desc": "The position along the x-axis of the touch-press inside the window, in pixels.",
                            "name": "x",
                            "rawdesc": "The position along the x-axis of the touch-press inside the window, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position along the y-axis of the touch-press inside the window, in pixels.",
                            "name": "y",
                            "rawdesc": "The position along the y-axis of the touch-press inside the window, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function love.touch.getPosition(id: lightuserdata)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    20,
                    31
                ],
                "name": "getPosition",
                "rawdesc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `pressure` — The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                "extends": {
                    "args": [
                        {
                            "desc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "finish": [
                                30,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "start": [
                                30,
                                32
                            ],
                            "type": "local",
                            "view": "lightuserdata"
                        }
                    ],
                    "desc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `pressure` — The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                    "finish": [
                        30,
                        39
                    ],
                    "rawdesc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)",
                    "returns": [
                        {
                            "desc": "The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                            "name": "pressure",
                            "rawdesc": "The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        30,
                        0
                    ],
                    "type": "function",
                    "view": "function love.touch.getPressure(id: lightuserdata)\n  -> pressure: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    30,
                    31
                ],
                "name": "getPressure",
                "rawdesc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)",
                "start": [
                    30,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)\n\n@*return* `touches` — A list of active touch-press id values, which can be used with love.touch.getPosition.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)\n\n@*return* `touches` — A list of active touch-press id values, which can be used with love.touch.getPosition.",
                    "finish": [
                        39,
                        36
                    ],
                    "rawdesc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)",
                    "returns": [
                        {
                            "desc": "A list of active touch-press id values, which can be used with love.touch.getPosition.",
                            "name": "touches",
                            "rawdesc": "A list of active touch-press id values, which can be used with love.touch.getPosition.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        39,
                        0
                    ],
                    "type": "function",
                    "view": "function love.touch.getTouches()\n  -> touches: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    39,
                    30
                ],
                "name": "getTouches",
                "rawdesc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)",
                "start": [
                    39,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.touch",
        "type": "type",
        "view": "love.touch"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `x` — The position along the x-axis of the touch-press inside the window, in pixels.\n\n@*return* `y` — The position along the y-axis of the touch-press inside the window, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "finish": [
                                20,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "start": [
                                20,
                                32
                            ],
                            "type": "local",
                            "view": "lightuserdata"
                        }
                    ],
                    "desc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `x` — The position along the x-axis of the touch-press inside the window, in pixels.\n\n@*return* `y` — The position along the y-axis of the touch-press inside the window, in pixels.",
                    "finish": [
                        20,
                        39
                    ],
                    "rawdesc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)",
                    "returns": [
                        {
                            "desc": "The position along the x-axis of the touch-press inside the window, in pixels.",
                            "name": "x",
                            "rawdesc": "The position along the x-axis of the touch-press inside the window, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The position along the y-axis of the touch-press inside the window, in pixels.",
                            "name": "y",
                            "rawdesc": "The position along the y-axis of the touch-press inside the window, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function love.touch.getPosition(id: lightuserdata)\n  -> x: number\n  2. y: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    20,
                    31
                ],
                "name": "getPosition",
                "rawdesc": "\nGets the current position of the specified touch-press, in pixels.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPosition)",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.touch.getPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `pressure` — The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                "extends": {
                    "args": [
                        {
                            "desc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "finish": [
                                30,
                                34
                            ],
                            "name": "id",
                            "rawdesc": "The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.",
                            "start": [
                                30,
                                32
                            ],
                            "type": "local",
                            "view": "lightuserdata"
                        }
                    ],
                    "desc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)\n\n@*param* `id` — The identifier of the touch-press. Use love.touch.getTouches, love.touchpressed, or love.touchmoved to obtain touch id values.\n\n@*return* `pressure` — The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                    "finish": [
                        30,
                        39
                    ],
                    "rawdesc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)",
                    "returns": [
                        {
                            "desc": "The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                            "name": "pressure",
                            "rawdesc": "The pressure of the touch-press. Most touch screens aren't pressure sensitive, in which case the pressure will be 1.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        30,
                        0
                    ],
                    "type": "function",
                    "view": "function love.touch.getPressure(id: lightuserdata)\n  -> pressure: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    30,
                    31
                ],
                "name": "getPressure",
                "rawdesc": "\nGets the current pressure of the specified touch-press.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getPressure)",
                "start": [
                    30,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.touch.getPressure",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)\n\n@*return* `touches` — A list of active touch-press id values, which can be used with love.touch.getPosition.",
                "extends": {
                    "args": [],
                    "desc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)\n\n@*return* `touches` — A list of active touch-press id values, which can be used with love.touch.getPosition.",
                    "finish": [
                        39,
                        36
                    ],
                    "rawdesc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)",
                    "returns": [
                        {
                            "desc": "A list of active touch-press id values, which can be used with love.touch.getPosition.",
                            "name": "touches",
                            "rawdesc": "A list of active touch-press id values, which can be used with love.touch.getPosition.",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        39,
                        0
                    ],
                    "type": "function",
                    "view": "function love.touch.getTouches()\n  -> touches: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/touch.lua",
                "finish": [
                    39,
                    30
                ],
                "name": "getTouches",
                "rawdesc": "\nGets a list of all active touch-presses.\n\n\n[Open in Browser](https://love2d.org/wiki/love.touch.getTouches)",
                "start": [
                    39,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.touch.getTouches",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when a touch press moves inside the touch screen.\n",
                "finish": [
                    306,
                    112
                ],
                "rawdesc": "\nCallback function triggered when a touch press moves inside the touch screen.\n",
                "start": [
                    306,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(id: lightuserdata, x: number, y: number, dx: number, dy: number, pressure: number)"
            }
        ],
        "fields": [],
        "name": "love.touchmoved",
        "type": "type",
        "view": "love.touchmoved"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when the touch screen is touched.\n",
                "finish": [
                    311,
                    114
                ],
                "rawdesc": "\nCallback function triggered when the touch screen is touched.\n",
                "start": [
                    311,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(id: lightuserdata, x: number, y: number, dx: number, dy: number, pressure: number)"
            }
        ],
        "fields": [],
        "name": "love.touchpressed",
        "type": "type",
        "view": "love.touchpressed"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when the touch screen stops being touched.\n",
                "finish": [
                    316,
                    115
                ],
                "rawdesc": "\nCallback function triggered when the touch screen stops being touched.\n",
                "start": [
                    316,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(id: lightuserdata, x: number, y: number, dx: number, dy: number, pressure: number)"
            }
        ],
        "fields": [],
        "name": "love.touchreleased",
        "type": "type",
        "view": "love.touchreleased"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function used to update the state of the game every frame.\n",
                "finish": [
                    321,
                    37
                ],
                "rawdesc": "\nCallback function used to update the state of the game every frame.\n",
                "start": [
                    321,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(dt: number)"
            }
        ],
        "fields": [],
        "name": "love.update",
        "type": "type",
        "view": "love.update"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    10,
                    20
                ],
                "rawdesc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "start": [
                    10,
                    10
                ],
                "type": "doc.class",
                "view": "love.video",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `videostream` — A new VideoStream.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file path to the Ogg Theora video file.",
                            "finish": [
                                22,
                                43
                            ],
                            "name": "filename",
                            "rawdesc": "The file path to the Ogg Theora video file.",
                            "start": [
                                22,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `videostream` — A new VideoStream.",
                    "finish": [
                        22,
                        48
                    ],
                    "rawdesc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)",
                    "returns": [
                        {
                            "desc": "A new VideoStream.",
                            "name": "videostream",
                            "rawdesc": "A new VideoStream.",
                            "type": "function.return",
                            "view": "love.VideoStream"
                        }
                    ],
                    "start": [
                        22,
                        0
                    ],
                    "type": "function",
                    "view": "function love.video.newVideoStream(filename: string)\n  -> videostream: love.VideoStream"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    22,
                    34
                ],
                "name": "newVideoStream",
                "rawdesc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)",
                "start": [
                    22,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.video",
        "type": "type",
        "view": "love.video"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "extends": {
                    "desc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                    "finish": [
                        11,
                        15
                    ],
                    "rawdesc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                    "start": [
                        11,
                        13
                    ],
                    "type": "table",
                    "view": "love.video"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    11,
                    10
                ],
                "name": "video",
                "rawdesc": "\nThis module is responsible for decoding, controlling, and streaming video files.\n\nIt can't draw the videos, see love.graphics.newVideo and Video objects for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video)\n",
                "start": [
                    11,
                    0
                ],
                "type": "setfield",
                "view": "love.video",
                "visible": "public"
            }
        ],
        "name": "love.video",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `videostream` — A new VideoStream.",
                "extends": {
                    "args": [
                        {
                            "desc": "The file path to the Ogg Theora video file.",
                            "finish": [
                                22,
                                43
                            ],
                            "name": "filename",
                            "rawdesc": "The file path to the Ogg Theora video file.",
                            "start": [
                                22,
                                35
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)\n\n\n---\n\n@*param* `filename` — The file path to the Ogg Theora video file.\n\n@*return* `videostream` — A new VideoStream.",
                    "finish": [
                        22,
                        48
                    ],
                    "rawdesc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)",
                    "returns": [
                        {
                            "desc": "A new VideoStream.",
                            "name": "videostream",
                            "rawdesc": "A new VideoStream.",
                            "type": "function.return",
                            "view": "love.VideoStream"
                        }
                    ],
                    "start": [
                        22,
                        0
                    ],
                    "type": "function",
                    "view": "function love.video.newVideoStream(filename: string)\n  -> videostream: love.VideoStream"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/video.lua",
                "finish": [
                    22,
                    34
                ],
                "name": "newVideoStream",
                "rawdesc": "\nCreates a new VideoStream. Currently only Ogg Theora video files are supported. VideoStreams can't draw videos, see love.graphics.newVideo for that.\n\n\n[Open in Browser](https://love2d.org/wiki/love.video.newVideoStream)",
                "start": [
                    22,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.video.newVideoStream",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when window is minimized/hidden or unminimized by the user.\n",
                "finish": [
                    326,
                    44
                ],
                "rawdesc": "\nCallback function triggered when window is minimized/hidden or unminimized by the user.\n",
                "start": [
                    326,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(visible: boolean)"
            }
        ],
        "fields": [],
        "name": "love.visible",
        "type": "type",
        "view": "love.visible"
    },
    {
        "defines": [
            {
                "desc": "\nCallback function triggered when the mouse wheel is moved.\n",
                "finish": [
                    331,
                    51
                ],
                "rawdesc": "\nCallback function triggered when the mouse wheel is moved.\n",
                "start": [
                    331,
                    10
                ],
                "type": "doc.alias",
                "view": "fun(x: number, y: number)"
            }
        ],
        "fields": [],
        "name": "love.wheelmoved",
        "type": "type",
        "view": "love.wheelmoved"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    8,
                    21
                ],
                "rawdesc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "love.window",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                "extends": {
                    "args": [],
                    "desc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                    "finish": [
                        17,
                        32
                    ],
                    "rawdesc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                    "start": [
                        17,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.close()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    17,
                    26
                ],
                "name": "close",
                "rawdesc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                "start": [
                    17,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)\n\n\n---\n\n@*param* `pixelvalue` — A number in pixels to convert to density-independent units.\n\n@*return* `value` — The converted number, in density-independent units.",
                "extends": {
                    "args": [
                        {
                            "desc": "A number in pixels to convert to density-independent units.",
                            "finish": [
                                34,
                                42
                            ],
                            "name": "pixelvalue",
                            "rawdesc": "A number in pixels to convert to density-independent units.",
                            "start": [
                                34,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)\n\n\n---\n\n@*param* `pixelvalue` — A number in pixels to convert to density-independent units.\n\n@*return* `value` — The converted number, in density-independent units.",
                    "finish": [
                        34,
                        47
                    ],
                    "rawdesc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)",
                    "returns": [
                        {
                            "desc": "The converted number, in density-independent units.",
                            "name": "value",
                            "rawdesc": "The converted number, in density-independent units.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        34,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.fromPixels(pixelvalue: number)\n  -> value: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    34,
                    31
                ],
                "name": "fromPixels",
                "rawdesc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)",
                "start": [
                    34,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                    "finish": [
                        49,
                        38
                    ],
                    "rawdesc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)",
                    "returns": [
                        {
                            "desc": "The pixel scale factor associated with the window.",
                            "name": "scale",
                            "rawdesc": "The pixel scale factor associated with the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        49,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDPIScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    49,
                    32
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)",
                "start": [
                    49,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `width` — The width of the desktop.\n\n@*return* `height` — The height of the desktop.",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of the display, if multiple monitors are available.",
                            "finish": [
                                60,
                                54
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display, if multiple monitors are available.",
                            "start": [
                                60,
                                42
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `width` — The width of the desktop.\n\n@*return* `height` — The height of the desktop.",
                    "finish": [
                        60,
                        59
                    ],
                    "rawdesc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the desktop.",
                            "name": "width",
                            "rawdesc": "The width of the desktop.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the desktop.",
                            "name": "height",
                            "rawdesc": "The height of the desktop.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        60,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDesktopDimensions(displayindex?: number)\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    60,
                    41
                ],
                "name": "getDesktopDimensions",
                "rawdesc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)",
                "start": [
                    60,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)\n\n@*return* `count` — The number of currently connected displays.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)\n\n@*return* `count` — The number of currently connected displays.",
                    "finish": [
                        69,
                        42
                    ],
                    "rawdesc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)",
                    "returns": [
                        {
                            "desc": "The number of currently connected displays.",
                            "name": "count",
                            "rawdesc": "The number of currently connected displays.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        69,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDisplayCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    69,
                    36
                ],
                "name": "getDisplayCount",
                "rawdesc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)",
                "start": [
                    69,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)\n\n@*param* `displayindex` — The index of the display to get the name of.\n\n@*return* `name` — The name of the specified display.",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of the display to get the name of.",
                            "finish": [
                                79,
                                48
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display to get the name of.",
                            "start": [
                                79,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)\n\n@*param* `displayindex` — The index of the display to get the name of.\n\n@*return* `name` — The name of the specified display.",
                    "finish": [
                        79,
                        53
                    ],
                    "rawdesc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)",
                    "returns": [
                        {
                            "desc": "The name of the specified display.",
                            "name": "name",
                            "rawdesc": "The name of the specified display.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDisplayName(displayindex?: number)\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    79,
                    35
                ],
                "name": "getDisplayName",
                "rawdesc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n@*param* `displayindex` — Display index to get its display orientation, or nil for default display index.\n\n@*return* `orientation` — Current device display orientation.\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Display index to get its display orientation, or nil for default display index.",
                            "finish": [
                                89,
                                55
                            ],
                            "name": "displayindex",
                            "rawdesc": "Display index to get its display orientation, or nil for default display index.",
                            "start": [
                                89,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n@*param* `displayindex` — Display index to get its display orientation, or nil for default display index.\n\n@*return* `orientation` — Current device display orientation.\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                    "finish": [
                        89,
                        60
                    ],
                    "rawdesc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                    "returns": [
                        {
                            "desc": "Current device display orientation.",
                            "name": "orientation",
                            "rawdesc": "Current device display orientation.",
                            "type": "function.return",
                            "view": "\"landscape\"|\"landscapeflipped\"|\"portrait\"|\"portraitflipped\"|\"unknown\""
                        }
                    ],
                    "start": [
                        89,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDisplayOrientation(displayindex?: number)\n  -> orientation: \"landscape\"|\"landscapeflipped\"|\"portrait\"|\"portraitflipped\"|\"unknown\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    89,
                    42
                ],
                "name": "getDisplayOrientation",
                "rawdesc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                "start": [
                    89,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n@*return* `fullscreen` — True if the window is fullscreen, false otherwise.\n\n@*return* `fstype` — The type of fullscreen mode used.\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n@*return* `fullscreen` — True if the window is fullscreen, false otherwise.\n\n@*return* `fstype` — The type of fullscreen mode used.\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                    "finish": [
                        99,
                        40
                    ],
                    "rawdesc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                    "returns": [
                        {
                            "desc": "True if the window is fullscreen, false otherwise.",
                            "name": "fullscreen",
                            "rawdesc": "True if the window is fullscreen, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The type of fullscreen mode used.",
                            "name": "fstype",
                            "rawdesc": "The type of fullscreen mode used.",
                            "type": "function.return",
                            "view": "\"desktop\"|\"exclusive\"|\"normal\""
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getFullscreen()\n  -> fullscreen: boolean\n  2. fstype: \"desktop\"|\"exclusive\"|\"normal\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    99,
                    34
                ],
                "name": "getFullscreen",
                "rawdesc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                "start": [
                    99,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `modes` — A table of width/height pairs. (Note that this may not be in order.)",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of the display, if multiple monitors are available.",
                            "finish": [
                                109,
                                52
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display, if multiple monitors are available.",
                            "start": [
                                109,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `modes` — A table of width/height pairs. (Note that this may not be in order.)",
                    "finish": [
                        109,
                        57
                    ],
                    "rawdesc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)",
                    "returns": [
                        {
                            "desc": "A table of width/height pairs. (Note that this may not be in order.)",
                            "name": "modes",
                            "rawdesc": "A table of width/height pairs. (Note that this may not be in order.)",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getFullscreenModes(displayindex?: number)\n  -> modes: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    109,
                    39
                ],
                "name": "getFullscreenModes",
                "rawdesc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)\n\n@*return* `imagedata` — The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)\n\n@*return* `imagedata` — The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                    "finish": [
                        118,
                        34
                    ],
                    "rawdesc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)",
                    "returns": [
                        {
                            "desc": "The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                            "name": "imagedata",
                            "rawdesc": "The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                            "type": "function.return",
                            "view": "love.ImageData"
                        }
                    ],
                    "start": [
                        118,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getIcon()\n  -> imagedata: love.ImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    118,
                    28
                ],
                "name": "getIcon",
                "rawdesc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)",
                "start": [
                    118,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)\n\n@*return* `width` — Window width.\n\n@*return* `height` — Window height.\n\n@*return* `flags` — Table with the window properties:",
                "extends": {
                    "args": [],
                    "desc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)\n\n@*return* `width` — Window width.\n\n@*return* `height` — Window height.\n\n@*return* `flags` — Table with the window properties:",
                    "finish": [
                        129,
                        34
                    ],
                    "rawdesc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)",
                    "returns": [
                        {
                            "desc": "Window width.",
                            "name": "width",
                            "rawdesc": "Window width.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Window height.",
                            "name": "height",
                            "rawdesc": "Window height.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Table with the window properties:",
                            "name": "flags",
                            "rawdesc": "Table with the window properties:",
                            "type": "function.return",
                            "view": "{ fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, refreshrate: number, x: number, y: number, srgb: boolean }"
                        }
                    ],
                    "start": [
                        129,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getMode()\n  -> width: number\n  2. height: number\n  3. flags: { fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, refreshrate: number, x: number, y: number, srgb: boolean }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    129,
                    28
                ],
                "name": "getMode",
                "rawdesc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)",
                "start": [
                    129,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)\n\n@*return* `x` — The x-coordinate of the window's position.\n\n@*return* `y` — The y-coordinate of the window's position.\n\n@*return* `displayindex` — The index of the display that the window is in.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)\n\n@*return* `x` — The x-coordinate of the window's position.\n\n@*return* `y` — The y-coordinate of the window's position.\n\n@*return* `displayindex` — The index of the display that the window is in.",
                    "finish": [
                        142,
                        38
                    ],
                    "rawdesc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)",
                    "returns": [
                        {
                            "desc": "The x-coordinate of the window's position.",
                            "name": "x",
                            "rawdesc": "The x-coordinate of the window's position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the window's position.",
                            "name": "y",
                            "rawdesc": "The y-coordinate of the window's position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the display that the window is in.",
                            "name": "displayindex",
                            "rawdesc": "The index of the display that the window is in.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        142,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getPosition()\n  -> x: number\n  2. y: number\n  3. displayindex: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    142,
                    32
                ],
                "name": "getPosition",
                "rawdesc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)",
                "start": [
                    142,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)\n\n@*return* `x` — Starting position of safe area (x-axis).\n\n@*return* `y` — Starting position of safe area (y-axis).\n\n@*return* `w` — Width of safe area.\n\n@*return* `h` — Height of safe area.",
                "extends": {
                    "args": [],
                    "desc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)\n\n@*return* `x` — Starting position of safe area (x-axis).\n\n@*return* `y` — Starting position of safe area (y-axis).\n\n@*return* `w` — Width of safe area.\n\n@*return* `h` — Height of safe area.",
                    "finish": [
                        154,
                        38
                    ],
                    "rawdesc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)",
                    "returns": [
                        {
                            "desc": "Starting position of safe area (x-axis).",
                            "name": "x",
                            "rawdesc": "Starting position of safe area (x-axis).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Starting position of safe area (y-axis).",
                            "name": "y",
                            "rawdesc": "Starting position of safe area (y-axis).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Width of safe area.",
                            "name": "w",
                            "rawdesc": "Width of safe area.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Height of safe area.",
                            "name": "h",
                            "rawdesc": "Height of safe area.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        154,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getSafeArea()\n  -> x: number\n  2. y: number\n  3. w: number\n  4. h: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    154,
                    32
                ],
                "name": "getSafeArea",
                "rawdesc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)",
                "start": [
                    154,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)\n\n@*return* `title` — The current window title.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)\n\n@*return* `title` — The current window title.",
                    "finish": [
                        163,
                        35
                    ],
                    "rawdesc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)",
                    "returns": [
                        {
                            "desc": "The current window title.",
                            "name": "title",
                            "rawdesc": "The current window title.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getTitle()\n  -> title: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    163,
                    29
                ],
                "name": "getTitle",
                "rawdesc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)",
                "start": [
                    163,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)\n\n@*return* `vsync` — Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                "extends": {
                    "args": [],
                    "desc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)\n\n@*return* `vsync` — Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                    "finish": [
                        172,
                        35
                    ],
                    "rawdesc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)",
                    "returns": [
                        {
                            "desc": "Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                            "name": "vsync",
                            "rawdesc": "Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        172,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getVSync()\n  -> vsync: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    172,
                    29
                ],
                "name": "getVSync",
                "rawdesc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)",
                "start": [
                    172,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)\n\n@*return* `focus` — True if the window has the focus or false if not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)\n\n@*return* `focus` — True if the window has the focus or false if not.",
                    "finish": [
                        181,
                        35
                    ],
                    "rawdesc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)",
                    "returns": [
                        {
                            "desc": "True if the window has the focus or false if not.",
                            "name": "focus",
                            "rawdesc": "True if the window has the focus or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.hasFocus()\n  -> focus: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    181,
                    29
                ],
                "name": "hasFocus",
                "rawdesc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)\n\n@*return* `focus` — True if the window has mouse focus or false if not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)\n\n@*return* `focus` — True if the window has mouse focus or false if not.",
                    "finish": [
                        190,
                        40
                    ],
                    "rawdesc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)",
                    "returns": [
                        {
                            "desc": "True if the window has mouse focus or false if not.",
                            "name": "focus",
                            "rawdesc": "True if the window has mouse focus or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        190,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.hasMouseFocus()\n  -> focus: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    190,
                    34
                ],
                "name": "hasMouseFocus",
                "rawdesc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)",
                "start": [
                    190,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)\n\n@*return* `enabled` — True if system display sleep is enabled / allowed, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)\n\n@*return* `enabled` — True if system display sleep is enabled / allowed, false otherwise.",
                    "finish": [
                        201,
                        48
                    ],
                    "rawdesc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)",
                    "returns": [
                        {
                            "desc": "True if system display sleep is enabled / allowed, false otherwise.",
                            "name": "enabled",
                            "rawdesc": "True if system display sleep is enabled / allowed, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isDisplaySleepEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    201,
                    42
                ],
                "name": "isDisplaySleepEnabled",
                "rawdesc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)\n\n@*return* `maximized` — True if the window is currently maximized in windowed mode, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)\n\n@*return* `maximized` — True if the window is currently maximized in windowed mode, false otherwise.",
                    "finish": [
                        212,
                        38
                    ],
                    "rawdesc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)",
                    "returns": [
                        {
                            "desc": "True if the window is currently maximized in windowed mode, false otherwise.",
                            "name": "maximized",
                            "rawdesc": "True if the window is currently maximized in windowed mode, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        212,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isMaximized()\n  -> maximized: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    212,
                    32
                ],
                "name": "isMaximized",
                "rawdesc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)",
                "start": [
                    212,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)\n\n@*return* `minimized` — True if the window is currently minimized, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)\n\n@*return* `minimized` — True if the window is currently minimized, false otherwise.",
                    "finish": [
                        221,
                        38
                    ],
                    "rawdesc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)",
                    "returns": [
                        {
                            "desc": "True if the window is currently minimized, false otherwise.",
                            "name": "minimized",
                            "rawdesc": "True if the window is currently minimized, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        221,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isMinimized()\n  -> minimized: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    221,
                    32
                ],
                "name": "isMinimized",
                "rawdesc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)",
                "start": [
                    221,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)\n\n@*return* `open` — True if the window is open, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)\n\n@*return* `open` — True if the window is open, false otherwise.",
                    "finish": [
                        230,
                        33
                    ],
                    "rawdesc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)",
                    "returns": [
                        {
                            "desc": "True if the window is open, false otherwise.",
                            "name": "open",
                            "rawdesc": "True if the window is open, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        230,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isOpen()\n  -> open: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    230,
                    27
                ],
                "name": "isOpen",
                "rawdesc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)",
                "start": [
                    230,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)\n\n@*return* `visible` — True if the window is visible or false if not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)\n\n@*return* `visible` — True if the window is visible or false if not.",
                    "finish": [
                        241,
                        36
                    ],
                    "rawdesc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)",
                    "returns": [
                        {
                            "desc": "True if the window is visible or false if not.",
                            "name": "visible",
                            "rawdesc": "True if the window is visible or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        241,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isVisible()\n  -> visible: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    241,
                    30
                ],
                "name": "isVisible",
                "rawdesc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)",
                "start": [
                    241,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                "extends": {
                    "args": [],
                    "desc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                    "finish": [
                        251,
                        35
                    ],
                    "rawdesc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                    "start": [
                        251,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.maximize()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    251,
                    29
                ],
                "name": "maximize",
                "rawdesc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                "start": [
                    251,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                "extends": {
                    "args": [],
                    "desc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                    "finish": [
                        259,
                        35
                    ],
                    "rawdesc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.minimize()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    259,
                    29
                ],
                "name": "minimize",
                "rawdesc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)\n\n@*param* `continuous` — Whether to continuously request attention until the window becomes active, or to do it only once.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to continuously request attention until the window becomes active, or to do it only once.",
                            "finish": [
                                270,
                                48
                            ],
                            "name": "continuous",
                            "rawdesc": "Whether to continuously request attention until the window becomes active, or to do it only once.",
                            "start": [
                                270,
                                38
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)\n\n@*param* `continuous` — Whether to continuously request attention until the window becomes active, or to do it only once.",
                    "finish": [
                        270,
                        53
                    ],
                    "rawdesc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)",
                    "start": [
                        270,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.requestAttention(continuous?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    270,
                    37
                ],
                "name": "requestAttention",
                "rawdesc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)",
                "start": [
                    270,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                "extends": {
                    "args": [],
                    "desc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                    "finish": [
                        278,
                        34
                    ],
                    "rawdesc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                    "start": [
                        278,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.restore()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    278,
                    28
                ],
                "name": "restore",
                "rawdesc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                "start": [
                    278,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)\n\n@*param* `enable` — True to enable system display sleep, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable system display sleep, false to disable it.",
                            "finish": [
                                289,
                                50
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable system display sleep, false to disable it.",
                            "start": [
                                289,
                                44
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)\n\n@*param* `enable` — True to enable system display sleep, false to disable it.",
                    "finish": [
                        289,
                        55
                    ],
                    "rawdesc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)",
                    "start": [
                        289,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setDisplaySleepEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    289,
                    43
                ],
                "name": "setDisplaySleepEnabled",
                "rawdesc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)",
                "start": [
                    289,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)\n\n\n---\n\n@*param* `fullscreen` — Whether to enter or exit fullscreen mode.\n\n@*return* `success` — True if an attempt to enter fullscreen was successful, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to enter or exit fullscreen mode.",
                            "finish": [
                                300,
                                45
                            ],
                            "name": "fullscreen",
                            "rawdesc": "Whether to enter or exit fullscreen mode.",
                            "start": [
                                300,
                                35
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)\n\n\n---\n\n@*param* `fullscreen` — Whether to enter or exit fullscreen mode.\n\n@*return* `success` — True if an attempt to enter fullscreen was successful, false otherwise.",
                    "finish": [
                        300,
                        50
                    ],
                    "rawdesc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)",
                    "returns": [
                        {
                            "desc": "True if an attempt to enter fullscreen was successful, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if an attempt to enter fullscreen was successful, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        300,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setFullscreen(fullscreen: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    300,
                    34
                ],
                "name": "setFullscreen",
                "rawdesc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)",
                "start": [
                    300,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)\n\n@*param* `imagedata` — The window icon image.\n\n@*return* `success` — Whether the icon has been set successfully.",
                "extends": {
                    "args": [
                        {
                            "desc": "The window icon image.",
                            "finish": [
                                310,
                                38
                            ],
                            "name": "imagedata",
                            "rawdesc": "The window icon image.",
                            "start": [
                                310,
                                29
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        }
                    ],
                    "desc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)\n\n@*param* `imagedata` — The window icon image.\n\n@*return* `success` — Whether the icon has been set successfully.",
                    "finish": [
                        310,
                        43
                    ],
                    "rawdesc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)",
                    "returns": [
                        {
                            "desc": "Whether the icon has been set successfully.",
                            "name": "success",
                            "rawdesc": "Whether the icon has been set successfully.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        310,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setIcon(imagedata: love.ImageData)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    310,
                    28
                ],
                "name": "setIcon",
                "rawdesc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)",
                "start": [
                    310,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)\n\n@*param* `width` — Display width.\n\n@*param* `height` — Display height.\n\n@*param* `flags` — The flags table with the options:\n\n@*return* `success` — True if successful, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "Display width.",
                            "finish": [
                                326,
                                34
                            ],
                            "name": "width",
                            "rawdesc": "Display width.",
                            "start": [
                                326,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Display height.",
                            "finish": [
                                326,
                                42
                            ],
                            "name": "height",
                            "rawdesc": "Display height.",
                            "start": [
                                326,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The flags table with the options:",
                            "finish": [
                                326,
                                49
                            ],
                            "name": "flags",
                            "rawdesc": "The flags table with the options:",
                            "start": [
                                326,
                                44
                            ],
                            "type": "local",
                            "view": "{ fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, stencil: boolean, depth: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number, usedpiscale: boolean, srgb: boolean }?"
                        }
                    ],
                    "desc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)\n\n@*param* `width` — Display width.\n\n@*param* `height` — Display height.\n\n@*param* `flags` — The flags table with the options:\n\n@*return* `success` — True if successful, false otherwise.",
                    "finish": [
                        326,
                        54
                    ],
                    "rawdesc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)",
                    "returns": [
                        {
                            "desc": "True if successful, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if successful, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        326,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setMode(width: number, height: number, flags?: { fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, stencil: boolean, depth: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number, usedpiscale: boolean, srgb: boolean })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    326,
                    28
                ],
                "name": "setMode",
                "rawdesc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)",
                "start": [
                    326,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)\n\n@*param* `x` — The x-coordinate of the window's position.\n\n@*param* `y` — The y-coordinate of the window's position.\n\n@*param* `displayindex` — The index of the display that the new window position is relative to.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x-coordinate of the window's position.",
                            "finish": [
                                339,
                                34
                            ],
                            "name": "x",
                            "rawdesc": "The x-coordinate of the window's position.",
                            "start": [
                                339,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the window's position.",
                            "finish": [
                                339,
                                37
                            ],
                            "name": "y",
                            "rawdesc": "The y-coordinate of the window's position.",
                            "start": [
                                339,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the display that the new window position is relative to.",
                            "finish": [
                                339,
                                51
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display that the new window position is relative to.",
                            "start": [
                                339,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)\n\n@*param* `x` — The x-coordinate of the window's position.\n\n@*param* `y` — The y-coordinate of the window's position.\n\n@*param* `displayindex` — The index of the display that the new window position is relative to.",
                    "finish": [
                        339,
                        56
                    ],
                    "rawdesc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)",
                    "start": [
                        339,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setPosition(x: number, y: number, displayindex?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    339,
                    32
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)",
                "start": [
                    339,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)\n\n@*param* `title` — The new window title.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new window title.",
                            "finish": [
                                348,
                                35
                            ],
                            "name": "title",
                            "rawdesc": "The new window title.",
                            "start": [
                                348,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)\n\n@*param* `title` — The new window title.",
                    "finish": [
                        348,
                        40
                    ],
                    "rawdesc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)",
                    "start": [
                        348,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setTitle(title: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    348,
                    29
                ],
                "name": "setTitle",
                "rawdesc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)",
                "start": [
                    348,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)\n\n@*param* `vsync` — VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                "extends": {
                    "args": [
                        {
                            "desc": "VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                            "finish": [
                                357,
                                35
                            ],
                            "name": "vsync",
                            "rawdesc": "VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                            "start": [
                                357,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)\n\n@*param* `vsync` — VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                    "finish": [
                        357,
                        40
                    ],
                    "rawdesc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)",
                    "start": [
                        357,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setVSync(vsync: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    357,
                    29
                ],
                "name": "setVSync",
                "rawdesc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)",
                "start": [
                    357,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n@*param* `title` — The title of the message box.\n\n@*param* `message` — The text inside the message box.\n\n@*param* `type` — The type of the message box.\n\n@*param* `attachtowindow` — Whether the message box should be attached to the love window or free-floating.\n\n@*return* `success` — Whether the message box was successfully displayed.\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The title of the message box.",
                            "finish": [
                                371,
                                41
                            ],
                            "name": "title",
                            "rawdesc": "The title of the message box.",
                            "start": [
                                371,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The text inside the message box.",
                            "finish": [
                                371,
                                50
                            ],
                            "name": "message",
                            "rawdesc": "The text inside the message box.",
                            "start": [
                                371,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The type of the message box.",
                            "finish": [
                                371,
                                56
                            ],
                            "name": "type",
                            "rawdesc": "The type of the message box.",
                            "start": [
                                371,
                                52
                            ],
                            "type": "local",
                            "view": "(\"error\"|\"info\"|\"warning\")?"
                        },
                        {
                            "desc": "Whether the message box should be attached to the love window or free-floating.",
                            "finish": [
                                371,
                                72
                            ],
                            "name": "attachtowindow",
                            "rawdesc": "Whether the message box should be attached to the love window or free-floating.",
                            "start": [
                                371,
                                58
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n@*param* `title` — The title of the message box.\n\n@*param* `message` — The text inside the message box.\n\n@*param* `type` — The type of the message box.\n\n@*param* `attachtowindow` — Whether the message box should be attached to the love window or free-floating.\n\n@*return* `success` — Whether the message box was successfully displayed.\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                    "finish": [
                        371,
                        77
                    ],
                    "rawdesc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                    "returns": [
                        {
                            "desc": "Whether the message box was successfully displayed.",
                            "name": "success",
                            "rawdesc": "Whether the message box was successfully displayed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        371,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.showMessageBox(title: string, message: string, type?: \"error\"|\"info\"|\"warning\", attachtowindow?: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    371,
                    35
                ],
                "name": "showMessageBox",
                "rawdesc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                "start": [
                    371,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)\n\n\n---\n\n@*param* `value` — A number in density-independent units to convert to pixels.\n\n@*return* `pixelvalue` — The converted number, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "A number in density-independent units to convert to pixels.",
                            "finish": [
                                388,
                                35
                            ],
                            "name": "value",
                            "rawdesc": "A number in density-independent units to convert to pixels.",
                            "start": [
                                388,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)\n\n\n---\n\n@*param* `value` — A number in density-independent units to convert to pixels.\n\n@*return* `pixelvalue` — The converted number, in pixels.",
                    "finish": [
                        388,
                        40
                    ],
                    "rawdesc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)",
                    "returns": [
                        {
                            "desc": "The converted number, in pixels.",
                            "name": "pixelvalue",
                            "rawdesc": "The converted number, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        388,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.toPixels(value: number)\n  -> pixelvalue: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    388,
                    29
                ],
                "name": "toPixels",
                "rawdesc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)",
                "start": [
                    388,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)\n\n@*param* `width` — Window width.\n\n@*param* `height` — Window height.\n\n@*param* `settings` — The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.\n\n@*return* `success` — True if successful, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "Window width.",
                            "finish": [
                                404,
                                37
                            ],
                            "name": "width",
                            "rawdesc": "Window width.",
                            "start": [
                                404,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Window height.",
                            "finish": [
                                404,
                                45
                            ],
                            "name": "height",
                            "rawdesc": "Window height.",
                            "start": [
                                404,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.",
                            "finish": [
                                404,
                                55
                            ],
                            "name": "settings",
                            "rawdesc": "The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.",
                            "start": [
                                404,
                                47
                            ],
                            "type": "local",
                            "view": "{ fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number }"
                        }
                    ],
                    "desc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)\n\n@*param* `width` — Window width.\n\n@*param* `height` — Window height.\n\n@*param* `settings` — The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.\n\n@*return* `success` — True if successful, false otherwise.",
                    "finish": [
                        404,
                        60
                    ],
                    "rawdesc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)",
                    "returns": [
                        {
                            "desc": "True if successful, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if successful, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        404,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.updateMode(width: number, height: number, settings: { fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    404,
                    31
                ],
                "name": "updateMode",
                "rawdesc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)",
                "start": [
                    404,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window",
        "type": "type",
        "view": "love.window"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                "extends": {
                    "desc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                    "finish": [
                        9,
                        16
                    ],
                    "rawdesc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                    "start": [
                        9,
                        14
                    ],
                    "type": "table",
                    "view": "love.window"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    9,
                    11
                ],
                "name": "window",
                "rawdesc": "\nProvides an interface for modifying and retrieving information about the program's window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window)\n",
                "start": [
                    9,
                    0
                ],
                "type": "setfield",
                "view": "love.window",
                "visible": "public"
            }
        ],
        "name": "love.window",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                "extends": {
                    "args": [],
                    "desc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                    "finish": [
                        17,
                        32
                    ],
                    "rawdesc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                    "start": [
                        17,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.close()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    17,
                    26
                ],
                "name": "close",
                "rawdesc": "\nCloses the window. It can be reopened with love.window.setMode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.close)",
                "start": [
                    17,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.close",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)\n\n\n---\n\n@*param* `pixelvalue` — A number in pixels to convert to density-independent units.\n\n@*return* `value` — The converted number, in density-independent units.",
                "extends": {
                    "args": [
                        {
                            "desc": "A number in pixels to convert to density-independent units.",
                            "finish": [
                                34,
                                42
                            ],
                            "name": "pixelvalue",
                            "rawdesc": "A number in pixels to convert to density-independent units.",
                            "start": [
                                34,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)\n\n\n---\n\n@*param* `pixelvalue` — A number in pixels to convert to density-independent units.\n\n@*return* `value` — The converted number, in density-independent units.",
                    "finish": [
                        34,
                        47
                    ],
                    "rawdesc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)",
                    "returns": [
                        {
                            "desc": "The converted number, in density-independent units.",
                            "name": "value",
                            "rawdesc": "The converted number, in density-independent units.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        34,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.fromPixels(pixelvalue: number)\n  -> value: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    34,
                    31
                ],
                "name": "fromPixels",
                "rawdesc": "\nConverts a number from pixels to density-independent units.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.fromPixels(1600) would return 800 in that case.\n\nThis function converts coordinates from pixels to the size users are expecting them to display at onscreen. love.window.toPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.fromPixels)",
                "start": [
                    34,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.fromPixels",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)\n\n@*return* `scale` — The pixel scale factor associated with the window.",
                    "finish": [
                        49,
                        38
                    ],
                    "rawdesc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)",
                    "returns": [
                        {
                            "desc": "The pixel scale factor associated with the window.",
                            "name": "scale",
                            "rawdesc": "The pixel scale factor associated with the window.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        49,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDPIScale()\n  -> scale: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    49,
                    32
                ],
                "name": "getDPIScale",
                "rawdesc": "\nGets the DPI scale factor associated with the window.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.getDPIScale() would return 2.0 in that case.\n\nThe love.window.fromPixels and love.window.toPixels functions can also be used to convert between units.\n\nThe highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDPIScale)",
                "start": [
                    49,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getDPIScale",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `width` — The width of the desktop.\n\n@*return* `height` — The height of the desktop.",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of the display, if multiple monitors are available.",
                            "finish": [
                                60,
                                54
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display, if multiple monitors are available.",
                            "start": [
                                60,
                                42
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `width` — The width of the desktop.\n\n@*return* `height` — The height of the desktop.",
                    "finish": [
                        60,
                        59
                    ],
                    "rawdesc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)",
                    "returns": [
                        {
                            "desc": "The width of the desktop.",
                            "name": "width",
                            "rawdesc": "The width of the desktop.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The height of the desktop.",
                            "name": "height",
                            "rawdesc": "The height of the desktop.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        60,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDesktopDimensions(displayindex?: number)\n  -> width: number\n  2. height: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    60,
                    41
                ],
                "name": "getDesktopDimensions",
                "rawdesc": "\nGets the width and height of the desktop.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDesktopDimensions)",
                "start": [
                    60,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getDesktopDimensions",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)\n\n@*return* `count` — The number of currently connected displays.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)\n\n@*return* `count` — The number of currently connected displays.",
                    "finish": [
                        69,
                        42
                    ],
                    "rawdesc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)",
                    "returns": [
                        {
                            "desc": "The number of currently connected displays.",
                            "name": "count",
                            "rawdesc": "The number of currently connected displays.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        69,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDisplayCount()\n  -> count: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    69,
                    36
                ],
                "name": "getDisplayCount",
                "rawdesc": "\nGets the number of connected monitors.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayCount)",
                "start": [
                    69,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getDisplayCount",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)\n\n@*param* `displayindex` — The index of the display to get the name of.\n\n@*return* `name` — The name of the specified display.",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of the display to get the name of.",
                            "finish": [
                                79,
                                48
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display to get the name of.",
                            "start": [
                                79,
                                36
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)\n\n@*param* `displayindex` — The index of the display to get the name of.\n\n@*return* `name` — The name of the specified display.",
                    "finish": [
                        79,
                        53
                    ],
                    "rawdesc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)",
                    "returns": [
                        {
                            "desc": "The name of the specified display.",
                            "name": "name",
                            "rawdesc": "The name of the specified display.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDisplayName(displayindex?: number)\n  -> name: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    79,
                    35
                ],
                "name": "getDisplayName",
                "rawdesc": "\nGets the name of a display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayName)",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getDisplayName",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n@*param* `displayindex` — Display index to get its display orientation, or nil for default display index.\n\n@*return* `orientation` — Current device display orientation.\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "Display index to get its display orientation, or nil for default display index.",
                            "finish": [
                                89,
                                55
                            ],
                            "name": "displayindex",
                            "rawdesc": "Display index to get its display orientation, or nil for default display index.",
                            "start": [
                                89,
                                43
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n@*param* `displayindex` — Display index to get its display orientation, or nil for default display index.\n\n@*return* `orientation` — Current device display orientation.\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                    "finish": [
                        89,
                        60
                    ],
                    "rawdesc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                    "returns": [
                        {
                            "desc": "Current device display orientation.",
                            "name": "orientation",
                            "rawdesc": "Current device display orientation.",
                            "type": "function.return",
                            "view": "\"landscape\"|\"landscapeflipped\"|\"portrait\"|\"portraitflipped\"|\"unknown\""
                        }
                    ],
                    "start": [
                        89,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getDisplayOrientation(displayindex?: number)\n  -> orientation: \"landscape\"|\"landscapeflipped\"|\"portrait\"|\"portraitflipped\"|\"unknown\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    89,
                    42
                ],
                "name": "getDisplayOrientation",
                "rawdesc": "\nGets current device display orientation.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getDisplayOrientation)\n\n\n```lua\n-- \n-- Types of device display orientation.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/DisplayOrientation)\n-- \norientation:\n    | \"unknown\" -- Orientation cannot be determined.\n    | \"landscape\" -- Landscape orientation.\n    | \"landscapeflipped\" -- Landscape orientation (flipped).\n    | \"portrait\" -- Portrait orientation.\n    | \"portraitflipped\" -- Portrait orientation (flipped).\n```",
                "start": [
                    89,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getDisplayOrientation",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n@*return* `fullscreen` — True if the window is fullscreen, false otherwise.\n\n@*return* `fstype` — The type of fullscreen mode used.\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n@*return* `fullscreen` — True if the window is fullscreen, false otherwise.\n\n@*return* `fstype` — The type of fullscreen mode used.\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                    "finish": [
                        99,
                        40
                    ],
                    "rawdesc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                    "returns": [
                        {
                            "desc": "True if the window is fullscreen, false otherwise.",
                            "name": "fullscreen",
                            "rawdesc": "True if the window is fullscreen, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "desc": "The type of fullscreen mode used.",
                            "name": "fstype",
                            "rawdesc": "The type of fullscreen mode used.",
                            "type": "function.return",
                            "view": "\"desktop\"|\"exclusive\"|\"normal\""
                        }
                    ],
                    "start": [
                        99,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getFullscreen()\n  -> fullscreen: boolean\n  2. fstype: \"desktop\"|\"exclusive\"|\"normal\""
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    99,
                    34
                ],
                "name": "getFullscreen",
                "rawdesc": "\nGets whether the window is fullscreen.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreen)\n\n\n```lua\n-- \n-- Types of fullscreen modes.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/FullscreenType)\n-- \nfstype:\n    | \"desktop\" -- Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.\n    | \"exclusive\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n    | \"normal\" -- Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.\n```",
                "start": [
                    99,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getFullscreen",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `modes` — A table of width/height pairs. (Note that this may not be in order.)",
                "extends": {
                    "args": [
                        {
                            "desc": "The index of the display, if multiple monitors are available.",
                            "finish": [
                                109,
                                52
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display, if multiple monitors are available.",
                            "start": [
                                109,
                                40
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)\n\n@*param* `displayindex` — The index of the display, if multiple monitors are available.\n\n@*return* `modes` — A table of width/height pairs. (Note that this may not be in order.)",
                    "finish": [
                        109,
                        57
                    ],
                    "rawdesc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)",
                    "returns": [
                        {
                            "desc": "A table of width/height pairs. (Note that this may not be in order.)",
                            "name": "modes",
                            "rawdesc": "A table of width/height pairs. (Note that this may not be in order.)",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        109,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getFullscreenModes(displayindex?: number)\n  -> modes: table"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    109,
                    39
                ],
                "name": "getFullscreenModes",
                "rawdesc": "\nGets a list of supported fullscreen modes.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getFullscreenModes)",
                "start": [
                    109,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getFullscreenModes",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)\n\n@*return* `imagedata` — The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)\n\n@*return* `imagedata` — The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                    "finish": [
                        118,
                        34
                    ],
                    "rawdesc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)",
                    "returns": [
                        {
                            "desc": "The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                            "name": "imagedata",
                            "rawdesc": "The window icon imagedata, or nil if no icon has been set with love.window.setIcon.",
                            "type": "function.return",
                            "view": "love.ImageData"
                        }
                    ],
                    "start": [
                        118,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getIcon()\n  -> imagedata: love.ImageData"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    118,
                    28
                ],
                "name": "getIcon",
                "rawdesc": "\nGets the window icon.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getIcon)",
                "start": [
                    118,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getIcon",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)\n\n@*return* `width` — Window width.\n\n@*return* `height` — Window height.\n\n@*return* `flags` — Table with the window properties:",
                "extends": {
                    "args": [],
                    "desc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)\n\n@*return* `width` — Window width.\n\n@*return* `height` — Window height.\n\n@*return* `flags` — Table with the window properties:",
                    "finish": [
                        129,
                        34
                    ],
                    "rawdesc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)",
                    "returns": [
                        {
                            "desc": "Window width.",
                            "name": "width",
                            "rawdesc": "Window width.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Window height.",
                            "name": "height",
                            "rawdesc": "Window height.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Table with the window properties:",
                            "name": "flags",
                            "rawdesc": "Table with the window properties:",
                            "type": "function.return",
                            "view": "{ fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, refreshrate: number, x: number, y: number, srgb: boolean }"
                        }
                    ],
                    "start": [
                        129,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getMode()\n  -> width: number\n  2. height: number\n  3. flags: { fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, refreshrate: number, x: number, y: number, srgb: boolean }"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    129,
                    28
                ],
                "name": "getMode",
                "rawdesc": "\nGets the display mode and properties of the window.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getMode)",
                "start": [
                    129,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)\n\n@*return* `x` — The x-coordinate of the window's position.\n\n@*return* `y` — The y-coordinate of the window's position.\n\n@*return* `displayindex` — The index of the display that the window is in.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)\n\n@*return* `x` — The x-coordinate of the window's position.\n\n@*return* `y` — The y-coordinate of the window's position.\n\n@*return* `displayindex` — The index of the display that the window is in.",
                    "finish": [
                        142,
                        38
                    ],
                    "rawdesc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)",
                    "returns": [
                        {
                            "desc": "The x-coordinate of the window's position.",
                            "name": "x",
                            "rawdesc": "The x-coordinate of the window's position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the window's position.",
                            "name": "y",
                            "rawdesc": "The y-coordinate of the window's position.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the display that the window is in.",
                            "name": "displayindex",
                            "rawdesc": "The index of the display that the window is in.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        142,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getPosition()\n  -> x: number\n  2. y: number\n  3. displayindex: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    142,
                    32
                ],
                "name": "getPosition",
                "rawdesc": "\nGets the position of the window on the screen.\n\nThe window position is in the coordinate space of the display it is currently in.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getPosition)",
                "start": [
                    142,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)\n\n@*return* `x` — Starting position of safe area (x-axis).\n\n@*return* `y` — Starting position of safe area (y-axis).\n\n@*return* `w` — Width of safe area.\n\n@*return* `h` — Height of safe area.",
                "extends": {
                    "args": [],
                    "desc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)\n\n@*return* `x` — Starting position of safe area (x-axis).\n\n@*return* `y` — Starting position of safe area (y-axis).\n\n@*return* `w` — Width of safe area.\n\n@*return* `h` — Height of safe area.",
                    "finish": [
                        154,
                        38
                    ],
                    "rawdesc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)",
                    "returns": [
                        {
                            "desc": "Starting position of safe area (x-axis).",
                            "name": "x",
                            "rawdesc": "Starting position of safe area (x-axis).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Starting position of safe area (y-axis).",
                            "name": "y",
                            "rawdesc": "Starting position of safe area (y-axis).",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Width of safe area.",
                            "name": "w",
                            "rawdesc": "Width of safe area.",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "desc": "Height of safe area.",
                            "name": "h",
                            "rawdesc": "Height of safe area.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        154,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getSafeArea()\n  -> x: number\n  2. y: number\n  3. w: number\n  4. h: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    154,
                    32
                ],
                "name": "getSafeArea",
                "rawdesc": "\nGets area inside the window which is known to be unobstructed by a system title bar, the iPhone X notch, etc. Useful for making sure UI elements can be seen by the user.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getSafeArea)",
                "start": [
                    154,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getSafeArea",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)\n\n@*return* `title` — The current window title.",
                "extends": {
                    "args": [],
                    "desc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)\n\n@*return* `title` — The current window title.",
                    "finish": [
                        163,
                        35
                    ],
                    "rawdesc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)",
                    "returns": [
                        {
                            "desc": "The current window title.",
                            "name": "title",
                            "rawdesc": "The current window title.",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        163,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getTitle()\n  -> title: string"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    163,
                    29
                ],
                "name": "getTitle",
                "rawdesc": "\nGets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getTitle)",
                "start": [
                    163,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getTitle",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)\n\n@*return* `vsync` — Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                "extends": {
                    "args": [],
                    "desc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)\n\n@*return* `vsync` — Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                    "finish": [
                        172,
                        35
                    ],
                    "rawdesc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)",
                    "returns": [
                        {
                            "desc": "Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                            "name": "vsync",
                            "rawdesc": "Current vsync status. 1 if enabled, 0 if disabled, and -1 for adaptive vsync.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        172,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.getVSync()\n  -> vsync: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    172,
                    29
                ],
                "name": "getVSync",
                "rawdesc": "\nGets current vertical synchronization (vsync).\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.getVSync)",
                "start": [
                    172,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.getVSync",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)\n\n@*return* `focus` — True if the window has the focus or false if not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)\n\n@*return* `focus` — True if the window has the focus or false if not.",
                    "finish": [
                        181,
                        35
                    ],
                    "rawdesc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)",
                    "returns": [
                        {
                            "desc": "True if the window has the focus or false if not.",
                            "name": "focus",
                            "rawdesc": "True if the window has the focus or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        181,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.hasFocus()\n  -> focus: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    181,
                    29
                ],
                "name": "hasFocus",
                "rawdesc": "\nChecks if the game window has keyboard focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasFocus)",
                "start": [
                    181,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.hasFocus",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)\n\n@*return* `focus` — True if the window has mouse focus or false if not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)\n\n@*return* `focus` — True if the window has mouse focus or false if not.",
                    "finish": [
                        190,
                        40
                    ],
                    "rawdesc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)",
                    "returns": [
                        {
                            "desc": "True if the window has mouse focus or false if not.",
                            "name": "focus",
                            "rawdesc": "True if the window has mouse focus or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        190,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.hasMouseFocus()\n  -> focus: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    190,
                    34
                ],
                "name": "hasMouseFocus",
                "rawdesc": "\nChecks if the game window has mouse focus.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.hasMouseFocus)",
                "start": [
                    190,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.hasMouseFocus",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)\n\n@*return* `enabled` — True if system display sleep is enabled / allowed, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)\n\n@*return* `enabled` — True if system display sleep is enabled / allowed, false otherwise.",
                    "finish": [
                        201,
                        48
                    ],
                    "rawdesc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)",
                    "returns": [
                        {
                            "desc": "True if system display sleep is enabled / allowed, false otherwise.",
                            "name": "enabled",
                            "rawdesc": "True if system display sleep is enabled / allowed, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        201,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isDisplaySleepEnabled()\n  -> enabled: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    201,
                    42
                ],
                "name": "isDisplaySleepEnabled",
                "rawdesc": "\nGets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isDisplaySleepEnabled)",
                "start": [
                    201,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.isDisplaySleepEnabled",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)\n\n@*return* `maximized` — True if the window is currently maximized in windowed mode, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)\n\n@*return* `maximized` — True if the window is currently maximized in windowed mode, false otherwise.",
                    "finish": [
                        212,
                        38
                    ],
                    "rawdesc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)",
                    "returns": [
                        {
                            "desc": "True if the window is currently maximized in windowed mode, false otherwise.",
                            "name": "maximized",
                            "rawdesc": "True if the window is currently maximized in windowed mode, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        212,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isMaximized()\n  -> maximized: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    212,
                    32
                ],
                "name": "isMaximized",
                "rawdesc": "\nGets whether the Window is currently maximized.\n\nThe window can be maximized if it is not fullscreen and is resizable, and either the user has pressed the window's Maximize button or love.window.maximize has been called.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMaximized)",
                "start": [
                    212,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.isMaximized",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)\n\n@*return* `minimized` — True if the window is currently minimized, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)\n\n@*return* `minimized` — True if the window is currently minimized, false otherwise.",
                    "finish": [
                        221,
                        38
                    ],
                    "rawdesc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)",
                    "returns": [
                        {
                            "desc": "True if the window is currently minimized, false otherwise.",
                            "name": "minimized",
                            "rawdesc": "True if the window is currently minimized, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        221,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isMinimized()\n  -> minimized: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    221,
                    32
                ],
                "name": "isMinimized",
                "rawdesc": "\nGets whether the Window is currently minimized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isMinimized)",
                "start": [
                    221,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.isMinimized",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)\n\n@*return* `open` — True if the window is open, false otherwise.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)\n\n@*return* `open` — True if the window is open, false otherwise.",
                    "finish": [
                        230,
                        33
                    ],
                    "rawdesc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)",
                    "returns": [
                        {
                            "desc": "True if the window is open, false otherwise.",
                            "name": "open",
                            "rawdesc": "True if the window is open, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        230,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isOpen()\n  -> open: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    230,
                    27
                ],
                "name": "isOpen",
                "rawdesc": "\nChecks if the window is open.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isOpen)",
                "start": [
                    230,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.isOpen",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)\n\n@*return* `visible` — True if the window is visible or false if not.",
                "extends": {
                    "args": [],
                    "desc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)\n\n@*return* `visible` — True if the window is visible or false if not.",
                    "finish": [
                        241,
                        36
                    ],
                    "rawdesc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)",
                    "returns": [
                        {
                            "desc": "True if the window is visible or false if not.",
                            "name": "visible",
                            "rawdesc": "True if the window is visible or false if not.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        241,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.isVisible()\n  -> visible: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    241,
                    30
                ],
                "name": "isVisible",
                "rawdesc": "\nChecks if the game window is visible.\n\nThe window is considered visible if it's not minimized and the program isn't hidden.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.isVisible)",
                "start": [
                    241,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.isVisible",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                "extends": {
                    "args": [],
                    "desc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                    "finish": [
                        251,
                        35
                    ],
                    "rawdesc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                    "start": [
                        251,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.maximize()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    251,
                    29
                ],
                "name": "maximize",
                "rawdesc": "\nMakes the window as large as possible.\n\nThis function has no effect if the window isn't resizable, since it essentially programmatically presses the window's 'maximize' button.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.maximize)",
                "start": [
                    251,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.maximize",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                "extends": {
                    "args": [],
                    "desc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                    "finish": [
                        259,
                        35
                    ],
                    "rawdesc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                    "start": [
                        259,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.minimize()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    259,
                    29
                ],
                "name": "minimize",
                "rawdesc": "\nMinimizes the window to the system's task bar / dock.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.minimize)",
                "start": [
                    259,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.minimize",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)\n\n@*param* `continuous` — Whether to continuously request attention until the window becomes active, or to do it only once.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to continuously request attention until the window becomes active, or to do it only once.",
                            "finish": [
                                270,
                                48
                            ],
                            "name": "continuous",
                            "rawdesc": "Whether to continuously request attention until the window becomes active, or to do it only once.",
                            "start": [
                                270,
                                38
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)\n\n@*param* `continuous` — Whether to continuously request attention until the window becomes active, or to do it only once.",
                    "finish": [
                        270,
                        53
                    ],
                    "rawdesc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)",
                    "start": [
                        270,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.requestAttention(continuous?: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    270,
                    37
                ],
                "name": "requestAttention",
                "rawdesc": "\nCauses the window to request the attention of the user if it is not in the foreground.\n\nIn Windows the taskbar icon will flash, and in OS X the dock icon will bounce.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.requestAttention)",
                "start": [
                    270,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.requestAttention",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                "extends": {
                    "args": [],
                    "desc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                    "finish": [
                        278,
                        34
                    ],
                    "rawdesc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                    "start": [
                        278,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.restore()"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    278,
                    28
                ],
                "name": "restore",
                "rawdesc": "\nRestores the size and position of the window if it was minimized or maximized.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.restore)",
                "start": [
                    278,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.restore",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)\n\n@*param* `enable` — True to enable system display sleep, false to disable it.",
                "extends": {
                    "args": [
                        {
                            "desc": "True to enable system display sleep, false to disable it.",
                            "finish": [
                                289,
                                50
                            ],
                            "name": "enable",
                            "rawdesc": "True to enable system display sleep, false to disable it.",
                            "start": [
                                289,
                                44
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)\n\n@*param* `enable` — True to enable system display sleep, false to disable it.",
                    "finish": [
                        289,
                        55
                    ],
                    "rawdesc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)",
                    "start": [
                        289,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setDisplaySleepEnabled(enable: boolean)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    289,
                    43
                ],
                "name": "setDisplaySleepEnabled",
                "rawdesc": "\nSets whether the display is allowed to sleep while the program is running.\n\nDisplay sleep is disabled by default. Some types of input (e.g. joystick button presses) might not prevent the display from sleeping, if display sleep is allowed.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setDisplaySleepEnabled)",
                "start": [
                    289,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setDisplaySleepEnabled",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)\n\n\n---\n\n@*param* `fullscreen` — Whether to enter or exit fullscreen mode.\n\n@*return* `success` — True if an attempt to enter fullscreen was successful, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "Whether to enter or exit fullscreen mode.",
                            "finish": [
                                300,
                                45
                            ],
                            "name": "fullscreen",
                            "rawdesc": "Whether to enter or exit fullscreen mode.",
                            "start": [
                                300,
                                35
                            ],
                            "type": "local",
                            "view": "boolean"
                        }
                    ],
                    "desc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)\n\n\n---\n\n@*param* `fullscreen` — Whether to enter or exit fullscreen mode.\n\n@*return* `success` — True if an attempt to enter fullscreen was successful, false otherwise.",
                    "finish": [
                        300,
                        50
                    ],
                    "rawdesc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)",
                    "returns": [
                        {
                            "desc": "True if an attempt to enter fullscreen was successful, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if an attempt to enter fullscreen was successful, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        300,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setFullscreen(fullscreen: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    300,
                    34
                ],
                "name": "setFullscreen",
                "rawdesc": "\nEnters or exits fullscreen. The display to use when entering fullscreen is chosen based on which display the window is currently in, if multiple monitors are connected.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setFullscreen)",
                "start": [
                    300,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setFullscreen",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)\n\n@*param* `imagedata` — The window icon image.\n\n@*return* `success` — Whether the icon has been set successfully.",
                "extends": {
                    "args": [
                        {
                            "desc": "The window icon image.",
                            "finish": [
                                310,
                                38
                            ],
                            "name": "imagedata",
                            "rawdesc": "The window icon image.",
                            "start": [
                                310,
                                29
                            ],
                            "type": "local",
                            "view": "love.ImageData"
                        }
                    ],
                    "desc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)\n\n@*param* `imagedata` — The window icon image.\n\n@*return* `success` — Whether the icon has been set successfully.",
                    "finish": [
                        310,
                        43
                    ],
                    "rawdesc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)",
                    "returns": [
                        {
                            "desc": "Whether the icon has been set successfully.",
                            "name": "success",
                            "rawdesc": "Whether the icon has been set successfully.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        310,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setIcon(imagedata: love.ImageData)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    310,
                    28
                ],
                "name": "setIcon",
                "rawdesc": "\nSets the window icon until the game is quit. Not all operating systems support very large icon images.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setIcon)",
                "start": [
                    310,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setIcon",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)\n\n@*param* `width` — Display width.\n\n@*param* `height` — Display height.\n\n@*param* `flags` — The flags table with the options:\n\n@*return* `success` — True if successful, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "Display width.",
                            "finish": [
                                326,
                                34
                            ],
                            "name": "width",
                            "rawdesc": "Display width.",
                            "start": [
                                326,
                                29
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Display height.",
                            "finish": [
                                326,
                                42
                            ],
                            "name": "height",
                            "rawdesc": "Display height.",
                            "start": [
                                326,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The flags table with the options:",
                            "finish": [
                                326,
                                49
                            ],
                            "name": "flags",
                            "rawdesc": "The flags table with the options:",
                            "start": [
                                326,
                                44
                            ],
                            "type": "local",
                            "view": "{ fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, stencil: boolean, depth: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number, usedpiscale: boolean, srgb: boolean }?"
                        }
                    ],
                    "desc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)\n\n@*param* `width` — Display width.\n\n@*param* `height` — Display height.\n\n@*param* `flags` — The flags table with the options:\n\n@*return* `success` — True if successful, false otherwise.",
                    "finish": [
                        326,
                        54
                    ],
                    "rawdesc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)",
                    "returns": [
                        {
                            "desc": "True if successful, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if successful, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        326,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setMode(width: number, height: number, flags?: { fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, stencil: boolean, depth: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number, usedpiscale: boolean, srgb: boolean })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    326,
                    28
                ],
                "name": "setMode",
                "rawdesc": "\nSets the display mode and properties of the window.\n\nIf width or height is 0, setMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared and values sent to shaders with canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setMode)",
                "start": [
                    326,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)\n\n@*param* `x` — The x-coordinate of the window's position.\n\n@*param* `y` — The y-coordinate of the window's position.\n\n@*param* `displayindex` — The index of the display that the new window position is relative to.",
                "extends": {
                    "args": [
                        {
                            "desc": "The x-coordinate of the window's position.",
                            "finish": [
                                339,
                                34
                            ],
                            "name": "x",
                            "rawdesc": "The x-coordinate of the window's position.",
                            "start": [
                                339,
                                33
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The y-coordinate of the window's position.",
                            "finish": [
                                339,
                                37
                            ],
                            "name": "y",
                            "rawdesc": "The y-coordinate of the window's position.",
                            "start": [
                                339,
                                36
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The index of the display that the new window position is relative to.",
                            "finish": [
                                339,
                                51
                            ],
                            "name": "displayindex",
                            "rawdesc": "The index of the display that the new window position is relative to.",
                            "start": [
                                339,
                                39
                            ],
                            "type": "local",
                            "view": "number?"
                        }
                    ],
                    "desc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)\n\n@*param* `x` — The x-coordinate of the window's position.\n\n@*param* `y` — The y-coordinate of the window's position.\n\n@*param* `displayindex` — The index of the display that the new window position is relative to.",
                    "finish": [
                        339,
                        56
                    ],
                    "rawdesc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)",
                    "start": [
                        339,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setPosition(x: number, y: number, displayindex?: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    339,
                    32
                ],
                "name": "setPosition",
                "rawdesc": "\nSets the position of the window on the screen.\n\nThe window position is in the coordinate space of the specified display.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setPosition)",
                "start": [
                    339,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setPosition",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)\n\n@*param* `title` — The new window title.",
                "extends": {
                    "args": [
                        {
                            "desc": "The new window title.",
                            "finish": [
                                348,
                                35
                            ],
                            "name": "title",
                            "rawdesc": "The new window title.",
                            "start": [
                                348,
                                30
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)\n\n@*param* `title` — The new window title.",
                    "finish": [
                        348,
                        40
                    ],
                    "rawdesc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)",
                    "start": [
                        348,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setTitle(title: string)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    348,
                    29
                ],
                "name": "setTitle",
                "rawdesc": "\nSets the window title.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setTitle)",
                "start": [
                    348,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setTitle",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)\n\n@*param* `vsync` — VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                "extends": {
                    "args": [
                        {
                            "desc": "VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                            "finish": [
                                357,
                                35
                            ],
                            "name": "vsync",
                            "rawdesc": "VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                            "start": [
                                357,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)\n\n@*param* `vsync` — VSync number: 1 to enable, 0 to disable, and -1 for adaptive vsync.",
                    "finish": [
                        357,
                        40
                    ],
                    "rawdesc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)",
                    "start": [
                        357,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.setVSync(vsync: number)"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    357,
                    29
                ],
                "name": "setVSync",
                "rawdesc": "\nSets vertical synchronization mode.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.setVSync)",
                "start": [
                    357,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.setVSync",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n@*param* `title` — The title of the message box.\n\n@*param* `message` — The text inside the message box.\n\n@*param* `type` — The type of the message box.\n\n@*param* `attachtowindow` — Whether the message box should be attached to the love window or free-floating.\n\n@*return* `success` — Whether the message box was successfully displayed.\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                "extends": {
                    "args": [
                        {
                            "desc": "The title of the message box.",
                            "finish": [
                                371,
                                41
                            ],
                            "name": "title",
                            "rawdesc": "The title of the message box.",
                            "start": [
                                371,
                                36
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The text inside the message box.",
                            "finish": [
                                371,
                                50
                            ],
                            "name": "message",
                            "rawdesc": "The text inside the message box.",
                            "start": [
                                371,
                                43
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": "The type of the message box.",
                            "finish": [
                                371,
                                56
                            ],
                            "name": "type",
                            "rawdesc": "The type of the message box.",
                            "start": [
                                371,
                                52
                            ],
                            "type": "local",
                            "view": "(\"error\"|\"info\"|\"warning\")?"
                        },
                        {
                            "desc": "Whether the message box should be attached to the love window or free-floating.",
                            "finish": [
                                371,
                                72
                            ],
                            "name": "attachtowindow",
                            "rawdesc": "Whether the message box should be attached to the love window or free-floating.",
                            "start": [
                                371,
                                58
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n@*param* `title` — The title of the message box.\n\n@*param* `message` — The text inside the message box.\n\n@*param* `type` — The type of the message box.\n\n@*param* `attachtowindow` — Whether the message box should be attached to the love window or free-floating.\n\n@*return* `success` — Whether the message box was successfully displayed.\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                    "finish": [
                        371,
                        77
                    ],
                    "rawdesc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                    "returns": [
                        {
                            "desc": "Whether the message box was successfully displayed.",
                            "name": "success",
                            "rawdesc": "Whether the message box was successfully displayed.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        371,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.showMessageBox(title: string, message: string, type?: \"error\"|\"info\"|\"warning\", attachtowindow?: boolean)\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    371,
                    35
                ],
                "name": "showMessageBox",
                "rawdesc": "\nDisplays a message box dialog above the love window. The message box contains a title, optional text, and buttons.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.showMessageBox)\n\n\n---\n\n```lua\n-- \n-- Types of message box dialogs. Different types may have slightly different looks.\n-- \n-- \n-- [Open in Browser](https://love2d.org/wiki/MessageBoxType)\n-- \ntype:\n    | \"info\" -- Informational dialog.\n    | \"warning\" -- Warning dialog.\n    | \"error\" -- Error dialog.\n```",
                "start": [
                    371,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.showMessageBox",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)\n\n\n---\n\n@*param* `value` — A number in density-independent units to convert to pixels.\n\n@*return* `pixelvalue` — The converted number, in pixels.",
                "extends": {
                    "args": [
                        {
                            "desc": "A number in density-independent units to convert to pixels.",
                            "finish": [
                                388,
                                35
                            ],
                            "name": "value",
                            "rawdesc": "A number in density-independent units to convert to pixels.",
                            "start": [
                                388,
                                30
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)\n\n\n---\n\n@*param* `value` — A number in density-independent units to convert to pixels.\n\n@*return* `pixelvalue` — The converted number, in pixels.",
                    "finish": [
                        388,
                        40
                    ],
                    "rawdesc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)",
                    "returns": [
                        {
                            "desc": "The converted number, in pixels.",
                            "name": "pixelvalue",
                            "rawdesc": "The converted number, in pixels.",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        388,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.toPixels(value: number)\n  -> pixelvalue: number"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    388,
                    29
                ],
                "name": "toPixels",
                "rawdesc": "\nConverts a number from density-independent units to pixels.\n\nThe pixel density inside the window might be greater (or smaller) than the 'size' of the window. For example on a retina screen in Mac OS X with the highdpi window flag enabled, the window may take up the same physical size as an 800x600 window, but the area inside the window uses 1600x1200 pixels. love.window.toPixels(800) would return 1600 in that case.\n\nThis is used to convert coordinates from the size users are expecting them to display at onscreen to pixels. love.window.fromPixels does the opposite. The highdpi window flag must be enabled to use the full pixel density of a Retina screen on Mac OS X and iOS. The flag currently does nothing on Windows and Linux, and on Android it is effectively always enabled.\n\nMost LÖVE functions return values and expect arguments in terms of pixels rather than density-independent units.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.toPixels)",
                "start": [
                    388,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.toPixels",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)\n\n@*param* `width` — Window width.\n\n@*param* `height` — Window height.\n\n@*param* `settings` — The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.\n\n@*return* `success` — True if successful, false otherwise.",
                "extends": {
                    "args": [
                        {
                            "desc": "Window width.",
                            "finish": [
                                404,
                                37
                            ],
                            "name": "width",
                            "rawdesc": "Window width.",
                            "start": [
                                404,
                                32
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "Window height.",
                            "finish": [
                                404,
                                45
                            ],
                            "name": "height",
                            "rawdesc": "Window height.",
                            "start": [
                                404,
                                39
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "desc": "The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.",
                            "finish": [
                                404,
                                55
                            ],
                            "name": "settings",
                            "rawdesc": "The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.",
                            "start": [
                                404,
                                47
                            ],
                            "type": "local",
                            "view": "{ fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number }"
                        }
                    ],
                    "desc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)\n\n@*param* `width` — Window width.\n\n@*param* `height` — Window height.\n\n@*param* `settings` — The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.\n\n@*return* `success` — True if successful, false otherwise.",
                    "finish": [
                        404,
                        60
                    ],
                    "rawdesc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)",
                    "returns": [
                        {
                            "desc": "True if successful, false otherwise.",
                            "name": "success",
                            "rawdesc": "True if successful, false otherwise.",
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        404,
                        0
                    ],
                    "type": "function",
                    "view": "function love.window.updateMode(width: number, height: number, settings: { fullscreen: boolean, fullscreentype: \"desktop\"|\"exclusive\"|\"normal\", vsync: boolean, msaa: number, resizable: boolean, borderless: boolean, centered: boolean, display: number, minwidth: number, minheight: number, highdpi: boolean, x: number, y: number })\n  -> success: boolean"
                },
                "file": "[FOREIGN] /opt/homebrew/Cellar/lua-language-server/3.15.0/libexec/meta/3rd/love2d/library/love/window.lua",
                "finish": [
                    404,
                    31
                ],
                "name": "updateMode",
                "rawdesc": "\nSets the display mode and properties of the window, without modifying unspecified properties.\n\nIf width or height is 0, updateMode will use the width and height of the desktop.\n\nChanging the display mode may have side effects: for example, canvases will be cleared. Make sure to save the contents of canvases beforehand or re-draw to them afterward if you need to.\n\n\n[Open in Browser](https://love2d.org/wiki/love.window.updateMode)",
                "start": [
                    404,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "love.window.updateMode",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math\"])\n",
                    "finish": [
                        20,
                        9
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math\"])\n",
                    "start": [
                        20,
                        7
                    ],
                    "type": "table",
                    "view": "mathlib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    20,
                    4
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math\"])\n",
                "start": [
                    20,
                    0
                ],
                "type": "setglobal",
                "view": "mathlib",
                "visible": "public"
            }
        ],
        "name": "math",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                31,
                                19
                            ],
                            "name": "x",
                            "start": [
                                31,
                                18
                            ],
                            "type": "local",
                            "view": "<Number:number>"
                        }
                    ],
                    "desc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                    "finish": [
                        31,
                        24
                    ],
                    "rawdesc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<Number:number>"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function math.abs(x: <Number:number>)\n  -> <Number:number>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    31,
                    17
                ],
                "name": "abs",
                "rawdesc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.abs",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                41,
                                20
                            ],
                            "name": "x",
                            "start": [
                                41,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                    "finish": [
                        41,
                        25
                    ],
                    "rawdesc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function math.acos(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    41,
                    18
                ],
                "name": "acos",
                "rawdesc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.acos",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                51,
                                20
                            ],
                            "name": "x",
                            "start": [
                                51,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                    "finish": [
                        51,
                        25
                    ],
                    "rawdesc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        51,
                        0
                    ],
                    "type": "function",
                    "view": "function math.asin(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    51,
                    18
                ],
                "name": "asin",
                "rawdesc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                "start": [
                    51,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.asin",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                61,
                                20
                            ],
                            "name": "y",
                            "start": [
                                61,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                    "finish": [
                        61,
                        25
                    ],
                    "rawdesc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function math.atan(y: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    61,
                    18
                ],
                "name": "atan",
                "rawdesc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.atan",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                73,
                                21
                            ],
                            "name": "y",
                            "start": [
                                73,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                73,
                                24
                            ],
                            "name": "x",
                            "start": [
                                73,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                    "finish": [
                        73,
                        29
                    ],
                    "rawdesc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function math.atan2(y: number, x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    73,
                    19
                ],
                "name": "atan2",
                "rawdesc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.atan2",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                83,
                                20
                            ],
                            "name": "x",
                            "start": [
                                83,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                    "finish": [
                        83,
                        25
                    ],
                    "rawdesc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function math.ceil(x: number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    83,
                    18
                ],
                "name": "ceil",
                "rawdesc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.ceil",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                19
                            ],
                            "name": "x",
                            "start": [
                                93,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                    "finish": [
                        93,
                        24
                    ],
                    "rawdesc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "function math.cos(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    93,
                    17
                ],
                "name": "cos",
                "rawdesc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.cos",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                104,
                                20
                            ],
                            "name": "x",
                            "start": [
                                104,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                    "finish": [
                        104,
                        25
                    ],
                    "rawdesc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function math.cosh(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    104,
                    18
                ],
                "name": "cosh",
                "rawdesc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.cosh",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                114,
                                19
                            ],
                            "name": "x",
                            "start": [
                                114,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                    "finish": [
                        114,
                        24
                    ],
                    "rawdesc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        114,
                        0
                    ],
                    "type": "function",
                    "view": "function math.deg(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    114,
                    17
                ],
                "name": "deg",
                "rawdesc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                "start": [
                    114,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.deg",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                124,
                                19
                            ],
                            "name": "x",
                            "start": [
                                124,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                    "finish": [
                        124,
                        24
                    ],
                    "rawdesc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        124,
                        0
                    ],
                    "type": "function",
                    "view": "function math.exp(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    124,
                    17
                ],
                "name": "exp",
                "rawdesc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                "start": [
                    124,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.exp",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                134,
                                21
                            ],
                            "name": "x",
                            "start": [
                                134,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                    "finish": [
                        134,
                        26
                    ],
                    "rawdesc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        134,
                        0
                    ],
                    "type": "function",
                    "view": "function math.floor(x: number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    134,
                    19
                ],
                "name": "floor",
                "rawdesc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                "start": [
                    134,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.floor",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                145,
                                20
                            ],
                            "name": "x",
                            "start": [
                                145,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                145,
                                23
                            ],
                            "name": "y",
                            "start": [
                                145,
                                22
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                    "finish": [
                        145,
                        28
                    ],
                    "rawdesc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        145,
                        0
                    ],
                    "type": "function",
                    "view": "function math.fmod(x: number, y: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    145,
                    18
                ],
                "name": "fmod",
                "rawdesc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                "start": [
                    145,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.fmod",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                157,
                                21
                            ],
                            "name": "x",
                            "start": [
                                157,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                    "finish": [
                        157,
                        26
                    ],
                    "rawdesc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                    "returns": [
                        {
                            "name": "m",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "e",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        157,
                        0
                    ],
                    "type": "function",
                    "view": "function math.frexp(x: number)\n  -> m: number\n  2. e: number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    157,
                    19
                ],
                "name": "frexp",
                "rawdesc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                "start": [
                    157,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.frexp",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                169,
                                21
                            ],
                            "name": "m",
                            "start": [
                                169,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                169,
                                24
                            ],
                            "name": "e",
                            "start": [
                                169,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                    "finish": [
                        169,
                        29
                    ],
                    "rawdesc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        169,
                        0
                    ],
                    "type": "function",
                    "view": "function math.ldexp(m: number, e: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    169,
                    19
                ],
                "name": "ldexp",
                "rawdesc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                "start": [
                    169,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.ldexp",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                180,
                                19
                            ],
                            "name": "x",
                            "start": [
                                180,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                180,
                                25
                            ],
                            "name": "base",
                            "start": [
                                180,
                                21
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                    "finish": [
                        180,
                        30
                    ],
                    "rawdesc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        180,
                        0
                    ],
                    "type": "function",
                    "view": "function math.log(x: number, base?: integer)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    180,
                    17
                ],
                "name": "log",
                "rawdesc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                "start": [
                    180,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.log",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                191,
                                21
                            ],
                            "name": "x",
                            "start": [
                                191,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                    "finish": [
                        191,
                        26
                    ],
                    "rawdesc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        191,
                        0
                    ],
                    "type": "function",
                    "view": "function math.log10(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    191,
                    19
                ],
                "name": "log10",
                "rawdesc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                "start": [
                    191,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.log10",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                203,
                                19
                            ],
                            "name": "x",
                            "start": [
                                203,
                                18
                            ],
                            "type": "local",
                            "view": "<Number:number>"
                        },
                        {
                            "finish": [
                                203,
                                24
                            ],
                            "start": [
                                203,
                                21
                            ],
                            "type": "...",
                            "view": "<Number:number>"
                        }
                    ],
                    "desc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                    "finish": [
                        203,
                        29
                    ],
                    "rawdesc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<Number:number>"
                        }
                    ],
                    "start": [
                        203,
                        0
                    ],
                    "type": "function",
                    "view": "function math.max(x: <Number:number>, ...<Number:number>)\n  -> <Number:number>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    203,
                    17
                ],
                "name": "max",
                "rawdesc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                "start": [
                    203,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.max",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                215,
                                19
                            ],
                            "name": "x",
                            "start": [
                                215,
                                18
                            ],
                            "type": "local",
                            "view": "<Number:number>"
                        },
                        {
                            "finish": [
                                215,
                                24
                            ],
                            "start": [
                                215,
                                21
                            ],
                            "type": "...",
                            "view": "<Number:number>"
                        }
                    ],
                    "desc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                    "finish": [
                        215,
                        29
                    ],
                    "rawdesc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<Number:number>"
                        }
                    ],
                    "start": [
                        215,
                        0
                    ],
                    "type": "function",
                    "view": "function math.min(x: <Number:number>, ...<Number:number>)\n  -> <Number:number>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    215,
                    17
                ],
                "name": "min",
                "rawdesc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                "start": [
                    215,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.min",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                226,
                                20
                            ],
                            "name": "x",
                            "start": [
                                226,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                    "finish": [
                        226,
                        25
                    ],
                    "rawdesc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        },
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        226,
                        0
                    ],
                    "type": "function",
                    "view": "function math.modf(x: number)\n  -> integer\n  2. number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    226,
                    18
                ],
                "name": "modf",
                "rawdesc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                "start": [
                    226,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.modf",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                238,
                                19
                            ],
                            "name": "x",
                            "start": [
                                238,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                238,
                                22
                            ],
                            "name": "y",
                            "start": [
                                238,
                                21
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                    "finish": [
                        238,
                        27
                    ],
                    "rawdesc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        238,
                        0
                    ],
                    "type": "function",
                    "view": "function math.pow(x: number, y: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    238,
                    17
                ],
                "name": "pow",
                "rawdesc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                "start": [
                    238,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.pow",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                248,
                                19
                            ],
                            "name": "x",
                            "start": [
                                248,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                    "finish": [
                        248,
                        24
                    ],
                    "rawdesc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        248,
                        0
                    ],
                    "type": "function",
                    "view": "function math.rad(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    248,
                    17
                ],
                "name": "rad",
                "rawdesc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                "start": [
                    248,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.rad",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                264,
                                22
                            ],
                            "name": "m",
                            "start": [
                                264,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                264,
                                25
                            ],
                            "name": "n",
                            "start": [
                                264,
                                24
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                    "finish": [
                        264,
                        30
                    ],
                    "rawdesc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        264,
                        0
                    ],
                    "type": "function",
                    "view": "function math.random(m: integer, n: integer)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    264,
                    20
                ],
                "name": "random",
                "rawdesc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                "start": [
                    264,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.random",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                272,
                                26
                            ],
                            "name": "x",
                            "start": [
                                272,
                                25
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                    "finish": [
                        272,
                        31
                    ],
                    "rawdesc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                    "start": [
                        272,
                        0
                    ],
                    "type": "function",
                    "view": "function math.randomseed(x: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    272,
                    24
                ],
                "name": "randomseed",
                "rawdesc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                "start": [
                    272,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.randomseed",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                282,
                                19
                            ],
                            "name": "x",
                            "start": [
                                282,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                    "finish": [
                        282,
                        24
                    ],
                    "rawdesc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        282,
                        0
                    ],
                    "type": "function",
                    "view": "function math.sin(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    282,
                    17
                ],
                "name": "sin",
                "rawdesc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                "start": [
                    282,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.sin",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                293,
                                20
                            ],
                            "name": "x",
                            "start": [
                                293,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                    "finish": [
                        293,
                        25
                    ],
                    "rawdesc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        293,
                        0
                    ],
                    "type": "function",
                    "view": "function math.sinh(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    293,
                    18
                ],
                "name": "sinh",
                "rawdesc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                "start": [
                    293,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.sinh",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                303,
                                20
                            ],
                            "name": "x",
                            "start": [
                                303,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                    "finish": [
                        303,
                        25
                    ],
                    "rawdesc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        303,
                        0
                    ],
                    "type": "function",
                    "view": "function math.sqrt(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    303,
                    18
                ],
                "name": "sqrt",
                "rawdesc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                "start": [
                    303,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.sqrt",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                313,
                                19
                            ],
                            "name": "x",
                            "start": [
                                313,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                    "finish": [
                        313,
                        24
                    ],
                    "rawdesc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        313,
                        0
                    ],
                    "type": "function",
                    "view": "function math.tan(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    313,
                    17
                ],
                "name": "tan",
                "rawdesc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                "start": [
                    313,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.tan",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                324,
                                20
                            ],
                            "name": "x",
                            "start": [
                                324,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                    "finish": [
                        324,
                        25
                    ],
                    "rawdesc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        324,
                        0
                    ],
                    "type": "function",
                    "view": "function math.tanh(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    324,
                    18
                ],
                "name": "tanh",
                "rawdesc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                "start": [
                    324,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.tanh",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                335,
                                25
                            ],
                            "name": "x",
                            "start": [
                                335,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                    "finish": [
                        335,
                        30
                    ],
                    "rawdesc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        335,
                        0
                    ],
                    "type": "function",
                    "view": "function math.tointeger(x: any)\n  -> integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    335,
                    23
                ],
                "name": "tointeger",
                "rawdesc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                "start": [
                    335,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.tointeger",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                349,
                                20
                            ],
                            "name": "x",
                            "start": [
                                349,
                                19
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                    "finish": [
                        349,
                        25
                    ],
                    "rawdesc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"float\"|\"integer\"|'nil'"
                        }
                    ],
                    "start": [
                        349,
                        0
                    ],
                    "type": "function",
                    "view": "function math.type(x: any)\n  -> \"float\"|\"integer\"|'nil'"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    349,
                    18
                ],
                "name": "type",
                "rawdesc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                "start": [
                    349,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.type",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                361,
                                19
                            ],
                            "name": "m",
                            "start": [
                                361,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                361,
                                22
                            ],
                            "name": "n",
                            "start": [
                                361,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                    "finish": [
                        361,
                        27
                    ],
                    "rawdesc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        361,
                        0
                    ],
                    "type": "function",
                    "view": "function math.ult(m: integer, n: integer)\n  -> boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    361,
                    17
                ],
                "name": "ult",
                "rawdesc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                "start": [
                    361,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "math.ult",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    7,
                    17
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "mathlib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                31,
                                19
                            ],
                            "name": "x",
                            "start": [
                                31,
                                18
                            ],
                            "type": "local",
                            "view": "<Number:number>"
                        }
                    ],
                    "desc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                    "finish": [
                        31,
                        24
                    ],
                    "rawdesc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<Number:number>"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function math.abs(x: <Number:number>)\n  -> <Number:number>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    31,
                    17
                ],
                "name": "abs",
                "rawdesc": "\nReturns the absolute value of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.abs\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                41,
                                20
                            ],
                            "name": "x",
                            "start": [
                                41,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                    "finish": [
                        41,
                        25
                    ],
                    "rawdesc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        41,
                        0
                    ],
                    "type": "function",
                    "view": "function math.acos(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    41,
                    18
                ],
                "name": "acos",
                "rawdesc": "\nReturns the arc cosine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.acos\"])",
                "start": [
                    41,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                51,
                                20
                            ],
                            "name": "x",
                            "start": [
                                51,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                    "finish": [
                        51,
                        25
                    ],
                    "rawdesc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        51,
                        0
                    ],
                    "type": "function",
                    "view": "function math.asin(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    51,
                    18
                ],
                "name": "asin",
                "rawdesc": "\nReturns the arc sine of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.asin\"])",
                "start": [
                    51,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                61,
                                20
                            ],
                            "name": "y",
                            "start": [
                                61,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                    "finish": [
                        61,
                        25
                    ],
                    "rawdesc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        61,
                        0
                    ],
                    "type": "function",
                    "view": "function math.atan(y: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    61,
                    18
                ],
                "name": "atan",
                "rawdesc": "\nReturns the arc tangent of `x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan\"])",
                "start": [
                    61,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                73,
                                21
                            ],
                            "name": "y",
                            "start": [
                                73,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                73,
                                24
                            ],
                            "name": "x",
                            "start": [
                                73,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                    "finish": [
                        73,
                        29
                    ],
                    "rawdesc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function math.atan2(y: number, x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    73,
                    19
                ],
                "name": "atan2",
                "rawdesc": "\nReturns the arc tangent of `y/x` (in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.atan2\"])",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                83,
                                20
                            ],
                            "name": "x",
                            "start": [
                                83,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                    "finish": [
                        83,
                        25
                    ],
                    "rawdesc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function math.ceil(x: number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    83,
                    18
                ],
                "name": "ceil",
                "rawdesc": "\nReturns the smallest integral value larger than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ceil\"])",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                19
                            ],
                            "name": "x",
                            "start": [
                                93,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                    "finish": [
                        93,
                        24
                    ],
                    "rawdesc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "function math.cos(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    93,
                    17
                ],
                "name": "cos",
                "rawdesc": "\nReturns the cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cos\"])",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                104,
                                20
                            ],
                            "name": "x",
                            "start": [
                                104,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                    "finish": [
                        104,
                        25
                    ],
                    "rawdesc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        104,
                        0
                    ],
                    "type": "function",
                    "view": "function math.cosh(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    104,
                    18
                ],
                "name": "cosh",
                "rawdesc": "\nReturns the hyperbolic cosine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.cosh\"])",
                "start": [
                    104,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                114,
                                19
                            ],
                            "name": "x",
                            "start": [
                                114,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                    "finish": [
                        114,
                        24
                    ],
                    "rawdesc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        114,
                        0
                    ],
                    "type": "function",
                    "view": "function math.deg(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    114,
                    17
                ],
                "name": "deg",
                "rawdesc": "\nConverts the angle `x` from radians to degrees.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.deg\"])",
                "start": [
                    114,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                124,
                                19
                            ],
                            "name": "x",
                            "start": [
                                124,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                    "finish": [
                        124,
                        24
                    ],
                    "rawdesc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        124,
                        0
                    ],
                    "type": "function",
                    "view": "function math.exp(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    124,
                    17
                ],
                "name": "exp",
                "rawdesc": "\nReturns the value `e^x` (where `e` is the base of natural logarithms).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.exp\"])",
                "start": [
                    124,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                134,
                                21
                            ],
                            "name": "x",
                            "start": [
                                134,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                    "finish": [
                        134,
                        26
                    ],
                    "rawdesc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        134,
                        0
                    ],
                    "type": "function",
                    "view": "function math.floor(x: number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    134,
                    19
                ],
                "name": "floor",
                "rawdesc": "\nReturns the largest integral value smaller than or equal to `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.floor\"])",
                "start": [
                    134,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                145,
                                20
                            ],
                            "name": "x",
                            "start": [
                                145,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                145,
                                23
                            ],
                            "name": "y",
                            "start": [
                                145,
                                22
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                    "finish": [
                        145,
                        28
                    ],
                    "rawdesc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        145,
                        0
                    ],
                    "type": "function",
                    "view": "function math.fmod(x: number, y: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    145,
                    18
                ],
                "name": "fmod",
                "rawdesc": "\nReturns the remainder of the division of `x` by `y` that rounds the quotient towards zero.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.fmod\"])",
                "start": [
                    145,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                157,
                                21
                            ],
                            "name": "x",
                            "start": [
                                157,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                    "finish": [
                        157,
                        26
                    ],
                    "rawdesc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                    "returns": [
                        {
                            "name": "m",
                            "type": "function.return",
                            "view": "number"
                        },
                        {
                            "name": "e",
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        157,
                        0
                    ],
                    "type": "function",
                    "view": "function math.frexp(x: number)\n  -> m: number\n  2. e: number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    157,
                    19
                ],
                "name": "frexp",
                "rawdesc": "\nDecompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.frexp\"])",
                "start": [
                    157,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA value larger than any other numeric value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.huge\"])\n",
                "extends": {
                    "finish": [
                        13,
                        27
                    ],
                    "start": [
                        13,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                13,
                                27
                            ],
                            "start": [
                                13,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    13,
                    27
                ],
                "name": "huge",
                "rawdesc": "\nA value larger than any other numeric value.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.huge\"])\n",
                "start": [
                    13,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                169,
                                21
                            ],
                            "name": "m",
                            "start": [
                                169,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                169,
                                24
                            ],
                            "name": "e",
                            "start": [
                                169,
                                23
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                    "finish": [
                        169,
                        29
                    ],
                    "rawdesc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        169,
                        0
                    ],
                    "type": "function",
                    "view": "function math.ldexp(m: number, e: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    169,
                    19
                ],
                "name": "ldexp",
                "rawdesc": "\nReturns `m * (2 ^ e)` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ldexp\"])",
                "start": [
                    169,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                180,
                                19
                            ],
                            "name": "x",
                            "start": [
                                180,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                180,
                                25
                            ],
                            "name": "base",
                            "start": [
                                180,
                                21
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                    "finish": [
                        180,
                        30
                    ],
                    "rawdesc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        180,
                        0
                    ],
                    "type": "function",
                    "view": "function math.log(x: number, base?: integer)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    180,
                    17
                ],
                "name": "log",
                "rawdesc": "\nReturns the logarithm of `x` in the given base.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log\"])",
                "start": [
                    180,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                191,
                                21
                            ],
                            "name": "x",
                            "start": [
                                191,
                                20
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                    "finish": [
                        191,
                        26
                    ],
                    "rawdesc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        191,
                        0
                    ],
                    "type": "function",
                    "view": "function math.log10(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    191,
                    19
                ],
                "name": "log10",
                "rawdesc": "\nReturns the base-10 logarithm of x.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.log10\"])",
                "start": [
                    191,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                203,
                                19
                            ],
                            "name": "x",
                            "start": [
                                203,
                                18
                            ],
                            "type": "local",
                            "view": "<Number:number>"
                        },
                        {
                            "finish": [
                                203,
                                24
                            ],
                            "start": [
                                203,
                                21
                            ],
                            "type": "...",
                            "view": "<Number:number>"
                        }
                    ],
                    "desc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                    "finish": [
                        203,
                        29
                    ],
                    "rawdesc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<Number:number>"
                        }
                    ],
                    "start": [
                        203,
                        0
                    ],
                    "type": "function",
                    "view": "function math.max(x: <Number:number>, ...<Number:number>)\n  -> <Number:number>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    203,
                    17
                ],
                "name": "max",
                "rawdesc": "\nReturns the argument with the maximum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.max\"])",
                "start": [
                    203,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                215,
                                19
                            ],
                            "name": "x",
                            "start": [
                                215,
                                18
                            ],
                            "type": "local",
                            "view": "<Number:number>"
                        },
                        {
                            "finish": [
                                215,
                                24
                            ],
                            "start": [
                                215,
                                21
                            ],
                            "type": "...",
                            "view": "<Number:number>"
                        }
                    ],
                    "desc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                    "finish": [
                        215,
                        29
                    ],
                    "rawdesc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<Number:number>"
                        }
                    ],
                    "start": [
                        215,
                        0
                    ],
                    "type": "function",
                    "view": "function math.min(x: <Number:number>, ...<Number:number>)\n  -> <Number:number>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    215,
                    17
                ],
                "name": "min",
                "rawdesc": "\nReturns the argument with the minimum value, according to the Lua operator `<`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.min\"])",
                "start": [
                    215,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                226,
                                20
                            ],
                            "name": "x",
                            "start": [
                                226,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                    "finish": [
                        226,
                        25
                    ],
                    "rawdesc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        },
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        226,
                        0
                    ],
                    "type": "function",
                    "view": "function math.modf(x: number)\n  -> integer\n  2. number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    226,
                    18
                ],
                "name": "modf",
                "rawdesc": "\nReturns the integral part of `x` and the fractional part of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.modf\"])",
                "start": [
                    226,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe value of *π*.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pi\"])\n",
                "extends": {
                    "finish": [
                        19,
                        27
                    ],
                    "start": [
                        19,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                19,
                                27
                            ],
                            "start": [
                                19,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "number"
                        }
                    ],
                    "view": "number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    19,
                    27
                ],
                "name": "pi",
                "rawdesc": "\nThe value of *π*.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pi\"])\n",
                "start": [
                    19,
                    10
                ],
                "type": "doc.field",
                "view": "number",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                238,
                                19
                            ],
                            "name": "x",
                            "start": [
                                238,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        },
                        {
                            "finish": [
                                238,
                                22
                            ],
                            "name": "y",
                            "start": [
                                238,
                                21
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                    "finish": [
                        238,
                        27
                    ],
                    "rawdesc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        238,
                        0
                    ],
                    "type": "function",
                    "view": "function math.pow(x: number, y: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    238,
                    17
                ],
                "name": "pow",
                "rawdesc": "\nReturns `x ^ y` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.pow\"])",
                "start": [
                    238,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                248,
                                19
                            ],
                            "name": "x",
                            "start": [
                                248,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                    "finish": [
                        248,
                        24
                    ],
                    "rawdesc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        248,
                        0
                    ],
                    "type": "function",
                    "view": "function math.rad(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    248,
                    17
                ],
                "name": "rad",
                "rawdesc": "\nConverts the angle `x` from degrees to radians.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.rad\"])",
                "start": [
                    248,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                264,
                                22
                            ],
                            "name": "m",
                            "start": [
                                264,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                264,
                                25
                            ],
                            "name": "n",
                            "start": [
                                264,
                                24
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                    "finish": [
                        264,
                        30
                    ],
                    "rawdesc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        264,
                        0
                    ],
                    "type": "function",
                    "view": "function math.random(m: integer, n: integer)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    264,
                    20
                ],
                "name": "random",
                "rawdesc": "\n* `math.random()`: Returns a float in the range [0,1).\n* `math.random(n)`: Returns a integer in the range [1, n].\n* `math.random(m, n)`: Returns a integer in the range [m, n].\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.random\"])",
                "start": [
                    264,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                272,
                                26
                            ],
                            "name": "x",
                            "start": [
                                272,
                                25
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                    "finish": [
                        272,
                        31
                    ],
                    "rawdesc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                    "start": [
                        272,
                        0
                    ],
                    "type": "function",
                    "view": "function math.randomseed(x: integer)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    272,
                    24
                ],
                "name": "randomseed",
                "rawdesc": "\nSets `x` as the \"seed\" for the pseudo-random generator.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.randomseed\"])",
                "start": [
                    272,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                282,
                                19
                            ],
                            "name": "x",
                            "start": [
                                282,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                    "finish": [
                        282,
                        24
                    ],
                    "rawdesc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        282,
                        0
                    ],
                    "type": "function",
                    "view": "function math.sin(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    282,
                    17
                ],
                "name": "sin",
                "rawdesc": "\nReturns the sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sin\"])",
                "start": [
                    282,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                293,
                                20
                            ],
                            "name": "x",
                            "start": [
                                293,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                    "finish": [
                        293,
                        25
                    ],
                    "rawdesc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        293,
                        0
                    ],
                    "type": "function",
                    "view": "function math.sinh(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    293,
                    18
                ],
                "name": "sinh",
                "rawdesc": "\nReturns the hyperbolic sine of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sinh\"])",
                "start": [
                    293,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                303,
                                20
                            ],
                            "name": "x",
                            "start": [
                                303,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                    "finish": [
                        303,
                        25
                    ],
                    "rawdesc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        303,
                        0
                    ],
                    "type": "function",
                    "view": "function math.sqrt(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    303,
                    18
                ],
                "name": "sqrt",
                "rawdesc": "\nReturns the square root of `x`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.sqrt\"])",
                "start": [
                    303,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                313,
                                19
                            ],
                            "name": "x",
                            "start": [
                                313,
                                18
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                    "finish": [
                        313,
                        24
                    ],
                    "rawdesc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        313,
                        0
                    ],
                    "type": "function",
                    "view": "function math.tan(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    313,
                    17
                ],
                "name": "tan",
                "rawdesc": "\nReturns the tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tan\"])",
                "start": [
                    313,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                324,
                                20
                            ],
                            "name": "x",
                            "start": [
                                324,
                                19
                            ],
                            "type": "local",
                            "view": "number"
                        }
                    ],
                    "desc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                    "finish": [
                        324,
                        25
                    ],
                    "rawdesc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        324,
                        0
                    ],
                    "type": "function",
                    "view": "function math.tanh(x: number)\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    324,
                    18
                ],
                "name": "tanh",
                "rawdesc": "\nReturns the hyperbolic tangent of `x` (assumed to be in radians).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tanh\"])",
                "start": [
                    324,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                335,
                                25
                            ],
                            "name": "x",
                            "start": [
                                335,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                    "finish": [
                        335,
                        30
                    ],
                    "rawdesc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        335,
                        0
                    ],
                    "type": "function",
                    "view": "function math.tointeger(x: any)\n  -> integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    335,
                    23
                ],
                "name": "tointeger",
                "rawdesc": "\nMiss locale <math.tointeger>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.tointeger\"])",
                "start": [
                    335,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                349,
                                20
                            ],
                            "name": "x",
                            "start": [
                                349,
                                19
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                    "finish": [
                        349,
                        25
                    ],
                    "rawdesc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "\"float\"|\"integer\"|'nil'"
                        }
                    ],
                    "start": [
                        349,
                        0
                    ],
                    "type": "function",
                    "view": "function math.type(x: any)\n  -> \"float\"|\"integer\"|'nil'"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    349,
                    18
                ],
                "name": "type",
                "rawdesc": "\nMiss locale <math.type>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.type\"])\n\n\n```lua\nreturn #1:\n    | \"integer\"\n    | \"float\"\n    | 'nil'\n```",
                "start": [
                    349,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                361,
                                19
                            ],
                            "name": "m",
                            "start": [
                                361,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                361,
                                22
                            ],
                            "name": "n",
                            "start": [
                                361,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                    "finish": [
                        361,
                        27
                    ],
                    "rawdesc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        361,
                        0
                    ],
                    "type": "function",
                    "view": "function math.ult(m: integer, n: integer)\n  -> boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/math.lua",
                "finish": [
                    361,
                    17
                ],
                "name": "ult",
                "rawdesc": "\nMiss locale <math.ult>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-math.ult\"])",
                "start": [
                    361,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "mathlib",
        "type": "type",
        "view": "mathlib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    304,
                    19
                ],
                "start": [
                    304,
                    10
                ],
                "type": "doc.class",
                "view": "metatable",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        309,
                        36
                    ],
                    "start": [
                        309,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                309,
                                31
                            ],
                            "start": [
                                309,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                309,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    309,
                                                    23
                                                ],
                                                "start": [
                                                    309,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                309,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                309,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    309,
                                                    26
                                                ],
                                                "start": [
                                                    309,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                309,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        309,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                309,
                                                31
                                            ],
                                            "start": [
                                                309,
                                                28
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        309,
                                                        31
                                                    ],
                                                    "start": [
                                                        309,
                                                        28
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        309,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                309,
                                36
                            ],
                            "start": [
                                309,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    309,
                    36
                ],
                "name": "__add",
                "start": [
                    309,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        323,
                        37
                    ],
                    "start": [
                        323,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                323,
                                32
                            ],
                            "start": [
                                323,
                                18
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                323,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t",
                                                "finish": [
                                                    323,
                                                    23
                                                ],
                                                "start": [
                                                    323,
                                                    22
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t"
                                            },
                                            "start": [
                                                323,
                                                22
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                323,
                                                27
                                            ],
                                            "name": {
                                                "[1]": "...",
                                                "finish": [
                                                    323,
                                                    27
                                                ],
                                                "start": [
                                                    323,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "..."
                                            },
                                            "start": [
                                                323,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        323,
                                        32
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                323,
                                                32
                                            ],
                                            "name": {
                                                "finish": [
                                                    323,
                                                    32
                                                ],
                                                "start": [
                                                    323,
                                                    29
                                                ],
                                                "type": "doc.return.name",
                                                "view": "unknown"
                                            },
                                            "start": [
                                                323,
                                                29
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        323,
                                                        32
                                                    ],
                                                    "start": [
                                                        323,
                                                        29
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "unknown"
                                                }
                                            ],
                                            "view": "unknown"
                                        }
                                    ],
                                    "start": [
                                        323,
                                        18
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t: any, ...any):...unknown"
                                }
                            ],
                            "view": "fun(t: any, ...any):...unknown"
                        },
                        {
                            "finish": [
                                323,
                                37
                            ],
                            "start": [
                                323,
                                34
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t: any, ...any):...unknown|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    323,
                    37
                ],
                "name": "__call",
                "start": [
                    323,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t: any, ...any):...unknown|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        316,
                        39
                    ],
                    "start": [
                        316,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                316,
                                34
                            ],
                            "start": [
                                316,
                                20
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                316,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    316,
                                                    26
                                                ],
                                                "start": [
                                                    316,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                316,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                316,
                                                29
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    316,
                                                    29
                                                ],
                                                "start": [
                                                    316,
                                                    27
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                316,
                                                27
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        316,
                                        34
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                316,
                                                34
                                            ],
                                            "start": [
                                                316,
                                                31
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        316,
                                                        34
                                                    ],
                                                    "start": [
                                                        316,
                                                        31
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        316,
                                        20
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                316,
                                39
                            ],
                            "start": [
                                316,
                                36
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    316,
                    39
                ],
                "name": "__concat",
                "start": [
                    316,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        312,
                        36
                    ],
                    "start": [
                        312,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                312,
                                31
                            ],
                            "start": [
                                312,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                312,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    312,
                                                    23
                                                ],
                                                "start": [
                                                    312,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                312,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                312,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    312,
                                                    26
                                                ],
                                                "start": [
                                                    312,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                312,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        312,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                312,
                                                31
                                            ],
                                            "start": [
                                                312,
                                                28
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        312,
                                                        31
                                                    ],
                                                    "start": [
                                                        312,
                                                        28
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        312,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                312,
                                36
                            ],
                            "start": [
                                312,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    312,
                    36
                ],
                "name": "__div",
                "start": [
                    312,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        318,
                        39
                    ],
                    "start": [
                        318,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                318,
                                34
                            ],
                            "start": [
                                318,
                                16
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                318,
                                                22
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    318,
                                                    22
                                                ],
                                                "start": [
                                                    318,
                                                    20
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                318,
                                                20
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                318,
                                                25
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    318,
                                                    25
                                                ],
                                                "start": [
                                                    318,
                                                    23
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                318,
                                                23
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        318,
                                        34
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                318,
                                                34
                                            ],
                                            "start": [
                                                318,
                                                27
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        318,
                                                        34
                                                    ],
                                                    "start": [
                                                        318,
                                                        27
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "boolean"
                                                }
                                            ],
                                            "view": "boolean"
                                        }
                                    ],
                                    "start": [
                                        318,
                                        16
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):boolean"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):boolean"
                        },
                        {
                            "finish": [
                                318,
                                39
                            ],
                            "start": [
                                318,
                                36
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):boolean|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    318,
                    39
                ],
                "name": "__eq",
                "start": [
                    318,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):boolean|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        308,
                        25
                    ],
                    "start": [
                        308,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "args": [
                                {
                                    "finish": [
                                        308,
                                        20
                                    ],
                                    "name": {
                                        "[1]": "t",
                                        "finish": [
                                            308,
                                            20
                                        ],
                                        "start": [
                                            308,
                                            19
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "t"
                                    },
                                    "start": [
                                        308,
                                        19
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "any"
                                }
                            ],
                            "finish": [
                                308,
                                21
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                308,
                                15
                            ],
                            "type": "doc.type.function",
                            "view": "fun(t: any)"
                        },
                        {
                            "finish": [
                                308,
                                25
                            ],
                            "start": [
                                308,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t: any)|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    308,
                    25
                ],
                "name": "__gc",
                "start": [
                    308,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t: any)|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        321,
                        42
                    ],
                    "start": [
                        321,
                        18
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                321,
                                23
                            ],
                            "start": [
                                321,
                                18
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        },
                        {
                            "finish": [
                                321,
                                37
                            ],
                            "start": [
                                321,
                                25
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                321,
                                                30
                                            ],
                                            "name": {
                                                "[1]": "t",
                                                "finish": [
                                                    321,
                                                    30
                                                ],
                                                "start": [
                                                    321,
                                                    29
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t"
                                            },
                                            "start": [
                                                321,
                                                29
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                321,
                                                32
                                            ],
                                            "name": {
                                                "[1]": "k",
                                                "finish": [
                                                    321,
                                                    32
                                                ],
                                                "start": [
                                                    321,
                                                    31
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "k"
                                            },
                                            "start": [
                                                321,
                                                31
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        321,
                                        37
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                321,
                                                37
                                            ],
                                            "start": [
                                                321,
                                                34
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        321,
                                                        37
                                                    ],
                                                    "start": [
                                                        321,
                                                        34
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        321,
                                        25
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t: any, k: any):any"
                                }
                            ],
                            "view": "fun(t: any, k: any):any"
                        },
                        {
                            "finish": [
                                321,
                                42
                            ],
                            "start": [
                                321,
                                39
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "table|fun(t: any, k: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    321,
                    42
                ],
                "name": "__index",
                "start": [
                    321,
                    10
                ],
                "type": "doc.field",
                "view": "table|fun(t: any, k: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        320,
                        39
                    ],
                    "start": [
                        320,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                320,
                                34
                            ],
                            "start": [
                                320,
                                16
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                320,
                                                22
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    320,
                                                    22
                                                ],
                                                "start": [
                                                    320,
                                                    20
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                320,
                                                20
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                320,
                                                25
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    320,
                                                    25
                                                ],
                                                "start": [
                                                    320,
                                                    23
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                320,
                                                23
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        320,
                                        34
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                320,
                                                34
                                            ],
                                            "start": [
                                                320,
                                                27
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        320,
                                                        34
                                                    ],
                                                    "start": [
                                                        320,
                                                        27
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "boolean"
                                                }
                                            ],
                                            "view": "boolean"
                                        }
                                    ],
                                    "start": [
                                        320,
                                        16
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):boolean"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):boolean"
                        },
                        {
                            "finish": [
                                320,
                                39
                            ],
                            "start": [
                                320,
                                36
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):boolean|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    320,
                    39
                ],
                "name": "__le",
                "start": [
                    320,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):boolean|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        317,
                        36
                    ],
                    "start": [
                        317,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                317,
                                31
                            ],
                            "start": [
                                317,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                317,
                                                22
                                            ],
                                            "name": {
                                                "[1]": "t",
                                                "finish": [
                                                    317,
                                                    22
                                                ],
                                                "start": [
                                                    317,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t"
                                            },
                                            "start": [
                                                317,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        317,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                317,
                                                31
                                            ],
                                            "start": [
                                                317,
                                                24
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        317,
                                                        31
                                                    ],
                                                    "start": [
                                                        317,
                                                        24
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "integer"
                                                }
                                            ],
                                            "view": "integer"
                                        }
                                    ],
                                    "start": [
                                        317,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t: any):integer"
                                }
                            ],
                            "view": "fun(t: any):integer"
                        },
                        {
                            "finish": [
                                317,
                                36
                            ],
                            "start": [
                                317,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t: any):integer|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    317,
                    36
                ],
                "name": "__len",
                "start": [
                    317,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t: any):integer|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        319,
                        39
                    ],
                    "start": [
                        319,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                319,
                                34
                            ],
                            "start": [
                                319,
                                16
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                319,
                                                22
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    319,
                                                    22
                                                ],
                                                "start": [
                                                    319,
                                                    20
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                319,
                                                20
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                319,
                                                25
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    319,
                                                    25
                                                ],
                                                "start": [
                                                    319,
                                                    23
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                319,
                                                23
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        319,
                                        34
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                319,
                                                34
                                            ],
                                            "start": [
                                                319,
                                                27
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        319,
                                                        34
                                                    ],
                                                    "start": [
                                                        319,
                                                        27
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "boolean"
                                                }
                                            ],
                                            "view": "boolean"
                                        }
                                    ],
                                    "start": [
                                        319,
                                        16
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):boolean"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):boolean"
                        },
                        {
                            "finish": [
                                319,
                                39
                            ],
                            "start": [
                                319,
                                36
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):boolean|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    319,
                    39
                ],
                "name": "__lt",
                "start": [
                    319,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):boolean|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        306,
                        29
                    ],
                    "start": [
                        306,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                306,
                                25
                            ],
                            "start": [
                                306,
                                22
                            ],
                            "type": "doc.type.name",
                            "view": "any"
                        },
                        {
                            "finish": [
                                306,
                                29
                            ],
                            "start": [
                                306,
                                26
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    306,
                    29
                ],
                "name": "__metatable",
                "start": [
                    306,
                    10
                ],
                "type": "doc.field",
                "view": "any",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        313,
                        36
                    ],
                    "start": [
                        313,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                313,
                                31
                            ],
                            "start": [
                                313,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                313,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    313,
                                                    23
                                                ],
                                                "start": [
                                                    313,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                313,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                313,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    313,
                                                    26
                                                ],
                                                "start": [
                                                    313,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                313,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        313,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                313,
                                                31
                                            ],
                                            "start": [
                                                313,
                                                28
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        313,
                                                        31
                                                    ],
                                                    "start": [
                                                        313,
                                                        28
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        313,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                313,
                                36
                            ],
                            "start": [
                                313,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    313,
                    36
                ],
                "name": "__mod",
                "start": [
                    313,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        305,
                        33
                    ],
                    "start": [
                        305,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                305,
                                20
                            ],
                            "start": [
                                305,
                                17
                            ],
                            "type": "doc.type.string",
                            "view": "'v'"
                        },
                        {
                            "finish": [
                                305,
                                24
                            ],
                            "start": [
                                305,
                                21
                            ],
                            "type": "doc.type.string",
                            "view": "'k'"
                        },
                        {
                            "finish": [
                                305,
                                29
                            ],
                            "start": [
                                305,
                                25
                            ],
                            "type": "doc.type.string",
                            "view": "'kv'"
                        },
                        {
                            "finish": [
                                305,
                                33
                            ],
                            "start": [
                                305,
                                30
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "'k'|'kv'|'v'|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    305,
                    33
                ],
                "name": "__mode",
                "start": [
                    305,
                    10
                ],
                "type": "doc.field",
                "view": "'k'|'kv'|'v'|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        311,
                        36
                    ],
                    "start": [
                        311,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                311,
                                31
                            ],
                            "start": [
                                311,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                311,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    311,
                                                    23
                                                ],
                                                "start": [
                                                    311,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                311,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                311,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    311,
                                                    26
                                                ],
                                                "start": [
                                                    311,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                311,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        311,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                311,
                                                31
                                            ],
                                            "start": [
                                                311,
                                                28
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        311,
                                                        31
                                                    ],
                                                    "start": [
                                                        311,
                                                        28
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        311,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                311,
                                36
                            ],
                            "start": [
                                311,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    311,
                    36
                ],
                "name": "__mul",
                "start": [
                    311,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        322,
                        41
                    ],
                    "start": [
                        322,
                        21
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                322,
                                26
                            ],
                            "start": [
                                322,
                                21
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        },
                        {
                            "args": [
                                {
                                    "finish": [
                                        322,
                                        32
                                    ],
                                    "name": {
                                        "[1]": "t",
                                        "finish": [
                                            322,
                                            32
                                        ],
                                        "start": [
                                            322,
                                            31
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "t"
                                    },
                                    "start": [
                                        322,
                                        31
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "any"
                                },
                                {
                                    "finish": [
                                        322,
                                        34
                                    ],
                                    "name": {
                                        "[1]": "k",
                                        "finish": [
                                            322,
                                            34
                                        ],
                                        "start": [
                                            322,
                                            33
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "k"
                                    },
                                    "start": [
                                        322,
                                        33
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "any"
                                },
                                {
                                    "finish": [
                                        322,
                                        36
                                    ],
                                    "name": {
                                        "[1]": "v",
                                        "finish": [
                                            322,
                                            36
                                        ],
                                        "start": [
                                            322,
                                            35
                                        ],
                                        "type": "doc.type.arg.name",
                                        "view": "v"
                                    },
                                    "start": [
                                        322,
                                        35
                                    ],
                                    "type": "doc.type.arg",
                                    "view": "any"
                                }
                            ],
                            "finish": [
                                322,
                                37
                            ],
                            "returns": {
                                "view": "unknown"
                            },
                            "start": [
                                322,
                                27
                            ],
                            "type": "doc.type.function",
                            "view": "fun(t: any, k: any, v: any)"
                        },
                        {
                            "finish": [
                                322,
                                41
                            ],
                            "start": [
                                322,
                                38
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "table|fun(t: any, k: any, v: any)|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    322,
                    41
                ],
                "name": "__newindex",
                "start": [
                    322,
                    10
                ],
                "type": "doc.field",
                "view": "table|fun(t: any, k: any, v: any)|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        314,
                        36
                    ],
                    "start": [
                        314,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                314,
                                31
                            ],
                            "start": [
                                314,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                314,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    314,
                                                    23
                                                ],
                                                "start": [
                                                    314,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                314,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                314,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    314,
                                                    26
                                                ],
                                                "start": [
                                                    314,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                314,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        314,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                314,
                                                31
                                            ],
                                            "start": [
                                                314,
                                                28
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        314,
                                                        31
                                                    ],
                                                    "start": [
                                                        314,
                                                        28
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        314,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                314,
                                36
                            ],
                            "start": [
                                314,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    314,
                    36
                ],
                "name": "__pow",
                "start": [
                    314,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        310,
                        36
                    ],
                    "start": [
                        310,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                310,
                                31
                            ],
                            "start": [
                                310,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                310,
                                                23
                                            ],
                                            "name": {
                                                "[1]": "t1",
                                                "finish": [
                                                    310,
                                                    23
                                                ],
                                                "start": [
                                                    310,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t1"
                                            },
                                            "start": [
                                                310,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        },
                                        {
                                            "finish": [
                                                310,
                                                26
                                            ],
                                            "name": {
                                                "[1]": "t2",
                                                "finish": [
                                                    310,
                                                    26
                                                ],
                                                "start": [
                                                    310,
                                                    24
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t2"
                                            },
                                            "start": [
                                                310,
                                                24
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        310,
                                        31
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                310,
                                                31
                                            ],
                                            "start": [
                                                310,
                                                28
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        310,
                                                        31
                                                    ],
                                                    "start": [
                                                        310,
                                                        28
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        310,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t1: any, t2: any):any"
                                }
                            ],
                            "view": "fun(t1: any, t2: any):any"
                        },
                        {
                            "finish": [
                                310,
                                36
                            ],
                            "start": [
                                310,
                                33
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t1: any, t2: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    310,
                    36
                ],
                "name": "__sub",
                "start": [
                    310,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t1: any, t2: any):any|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        307,
                        40
                    ],
                    "start": [
                        307,
                        22
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                307,
                                35
                            ],
                            "start": [
                                307,
                                22
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                307,
                                                27
                                            ],
                                            "name": {
                                                "[1]": "t",
                                                "finish": [
                                                    307,
                                                    27
                                                ],
                                                "start": [
                                                    307,
                                                    26
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t"
                                            },
                                            "start": [
                                                307,
                                                26
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        307,
                                        35
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                307,
                                                35
                                            ],
                                            "start": [
                                                307,
                                                29
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        307,
                                                        35
                                                    ],
                                                    "start": [
                                                        307,
                                                        29
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "string"
                                                }
                                            ],
                                            "view": "string"
                                        }
                                    ],
                                    "start": [
                                        307,
                                        22
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t: any):string"
                                }
                            ],
                            "view": "fun(t: any):string"
                        },
                        {
                            "finish": [
                                307,
                                40
                            ],
                            "start": [
                                307,
                                37
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t: any):string|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    307,
                    40
                ],
                "name": "__tostring",
                "start": [
                    307,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t: any):string|nil",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        315,
                        32
                    ],
                    "start": [
                        315,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                315,
                                27
                            ],
                            "start": [
                                315,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "args": [
                                        {
                                            "finish": [
                                                315,
                                                22
                                            ],
                                            "name": {
                                                "[1]": "t",
                                                "finish": [
                                                    315,
                                                    22
                                                ],
                                                "start": [
                                                    315,
                                                    21
                                                ],
                                                "type": "doc.type.arg.name",
                                                "view": "t"
                                            },
                                            "start": [
                                                315,
                                                21
                                            ],
                                            "type": "doc.type.arg",
                                            "view": "any"
                                        }
                                    ],
                                    "finish": [
                                        315,
                                        27
                                    ],
                                    "returns": [
                                        {
                                            "finish": [
                                                315,
                                                27
                                            ],
                                            "start": [
                                                315,
                                                24
                                            ],
                                            "type": "doc.type",
                                            "types": [
                                                {
                                                    "finish": [
                                                        315,
                                                        27
                                                    ],
                                                    "start": [
                                                        315,
                                                        24
                                                    ],
                                                    "type": "doc.type.name",
                                                    "view": "any"
                                                }
                                            ],
                                            "view": "any"
                                        }
                                    ],
                                    "start": [
                                        315,
                                        17
                                    ],
                                    "type": "doc.type.function",
                                    "view": "fun(t: any):any"
                                }
                            ],
                            "view": "fun(t: any):any"
                        },
                        {
                            "finish": [
                                315,
                                32
                            ],
                            "start": [
                                315,
                                29
                            ],
                            "type": "doc.type.name",
                            "view": "nil"
                        }
                    ],
                    "view": "fun(t: any):any|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    315,
                    32
                ],
                "name": "__unm",
                "start": [
                    315,
                    10
                ],
                "type": "doc.field",
                "view": "fun(t: any):any|nil",
                "visible": "public"
            }
        ],
        "name": "metatable",
        "type": "type",
        "view": "metatable"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCreates a module.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-module\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                172,
                                20
                            ],
                            "name": "name",
                            "start": [
                                172,
                                16
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                172,
                                25
                            ],
                            "start": [
                                172,
                                22
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nCreates a module.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-module\"])",
                    "finish": [
                        172,
                        30
                    ],
                    "rawdesc": "\nCreates a module.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-module\"])",
                    "start": [
                        172,
                        0
                    ],
                    "type": "function",
                    "view": "function module(name: string, ...any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    172,
                    15
                ],
                "rawdesc": "\nCreates a module.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-module\"])",
                "start": [
                    172,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "module",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                162,
                                23
                            ],
                            "name": "proxy",
                            "start": [
                                162,
                                18
                            ],
                            "type": "local",
                            "view": "boolean|table|userdata"
                        }
                    ],
                    "finish": [
                        162,
                        28
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "userdata"
                        }
                    ],
                    "start": [
                        162,
                        0
                    ],
                    "type": "function",
                    "view": "function newproxy(proxy: boolean|table|userdata)\n  -> userdata"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    162,
                    17
                ],
                "start": [
                    162,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "newproxy",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nAllows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. A call to `next` returns the next index of the table and its associated value. When called with `nil` as its second argument, `next` returns an initial index and its associated value. When called with the last index, or with `nil` in an empty table, `next` returns `nil`. If the second argument is absent, then it is interpreted as `nil`. In particular, you can use `next(t)` to check whether a table is empty.\n\nThe order in which the indices are enumerated is not specified, *even for numeric indices*. (To traverse a table in numerical order, use a numerical `for`.)\n\nThe behavior of `next` is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may set existing fields to nil.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-next\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                190,
                                19
                            ],
                            "name": "table",
                            "start": [
                                190,
                                14
                            ],
                            "type": "local",
                            "view": "table<<K>, <V>>"
                        },
                        {
                            "finish": [
                                190,
                                26
                            ],
                            "name": "index",
                            "start": [
                                190,
                                21
                            ],
                            "type": "local",
                            "view": "<K>?"
                        }
                    ],
                    "desc": "\nAllows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. A call to `next` returns the next index of the table and its associated value. When called with `nil` as its second argument, `next` returns an initial index and its associated value. When called with the last index, or with `nil` in an empty table, `next` returns `nil`. If the second argument is absent, then it is interpreted as `nil`. In particular, you can use `next(t)` to check whether a table is empty.\n\nThe order in which the indices are enumerated is not specified, *even for numeric indices*. (To traverse a table in numerical order, use a numerical `for`.)\n\nThe behavior of `next` is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may set existing fields to nil.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-next\"])",
                    "finish": [
                        190,
                        31
                    ],
                    "rawdesc": "\nAllows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. A call to `next` returns the next index of the table and its associated value. When called with `nil` as its second argument, `next` returns an initial index and its associated value. When called with the last index, or with `nil` in an empty table, `next` returns `nil`. If the second argument is absent, then it is interpreted as `nil`. In particular, you can use `next(t)` to check whether a table is empty.\n\nThe order in which the indices are enumerated is not specified, *even for numeric indices*. (To traverse a table in numerical order, use a numerical `for`.)\n\nThe behavior of `next` is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may set existing fields to nil.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-next\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<K>?"
                        },
                        {
                            "type": "function.return",
                            "view": "<V>?"
                        }
                    ],
                    "start": [
                        190,
                        0
                    ],
                    "type": "function",
                    "view": "function next(table: table<<K>, <V>>, index?: <K>)\n  -> <K>?\n  2. <V>?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    190,
                    13
                ],
                "rawdesc": "\nAllows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. A call to `next` returns the next index of the table and its associated value. When called with `nil` as its second argument, `next` returns an initial index and its associated value. When called with the last index, or with `nil` in an empty table, `next` returns `nil`. If the second argument is absent, then it is interpreted as `nil`. In particular, you can use `next(t)` to check whether a table is empty.\n\nThe order in which the indices are enumerated is not specified, *even for numeric indices*. (To traverse a table in numerical order, use a numerical `for`.)\n\nThe behavior of `next` is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may set existing fields to nil.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-next\"])",
                "start": [
                    190,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "next",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    4,
                    13
                ],
                "start": [
                    4,
                    10
                ],
                "type": "doc.class",
                "view": "nil",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "nil",
        "type": "type",
        "view": "nil"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    8,
                    16
                ],
                "start": [
                    8,
                    10
                ],
                "type": "doc.class",
                "view": "number",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "number",
        "type": "type",
        "view": "number"
    },
    {
        "defines": [
            {
                "desc": "```lua\nopenmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                "finish": [
                    40,
                    10
                ],
                "rawdesc": "```lua\nopenmode:\n   -> \"r\" -- Read mode.\n    | \"w\" -- Write mode.\n    | \"a\" -- Append mode.\n    | \"r+\" -- Update mode, all previous data is preserved.\n    | \"w+\" -- Update mode, all previous data is erased.\n    | \"a+\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file.\n    | \"rb\" -- Read mode. (in binary mode.)\n    | \"wb\" -- Write mode. (in binary mode.)\n    | \"ab\" -- Append mode. (in binary mode.)\n    | \"r+b\" -- Update mode, all previous data is preserved. (in binary mode.)\n    | \"w+b\" -- Update mode, all previous data is erased. (in binary mode.)\n    | \"a+b\" -- Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)\n```",
                "start": [
                    28,
                    10
                ],
                "type": "doc.alias",
                "view": "\"a\"|\"a+\"|\"a+b\"|\"ab\"|\"r\"...(+7)"
            }
        ],
        "fields": [],
        "name": "openmode",
        "type": "type",
        "view": "openmode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os\"])\n",
                    "finish": [
                        8,
                        7
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os\"])\n",
                    "start": [
                        8,
                        5
                    ],
                    "type": "table",
                    "view": "oslib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    8,
                    2
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os\"])\n",
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "oslib",
                "visible": "public"
            }
        ],
        "name": "os",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                    "finish": [
                        17,
                        23
                    ],
                    "rawdesc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        17,
                        0
                    ],
                    "type": "function",
                    "view": "function os.clock()\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    17,
                    17
                ],
                "name": "clock",
                "rawdesc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                "start": [
                    17,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.clock",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                84,
                                23
                            ],
                            "name": "format",
                            "start": [
                                84,
                                17
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                84,
                                29
                            ],
                            "name": "time",
                            "start": [
                                84,
                                25
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                    "finish": [
                        84,
                        34
                    ],
                    "rawdesc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string|osdate"
                        }
                    ],
                    "start": [
                        84,
                        0
                    ],
                    "type": "function",
                    "view": "function os.date(format?: string, time?: integer)\n  -> string|osdate"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    84,
                    16
                ],
                "name": "date",
                "rawdesc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                "start": [
                    84,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.date",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                95,
                                23
                            ],
                            "name": "t2",
                            "start": [
                                95,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                95,
                                27
                            ],
                            "name": "t1",
                            "start": [
                                95,
                                25
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                    "finish": [
                        95,
                        32
                    ],
                    "rawdesc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        95,
                        0
                    ],
                    "type": "function",
                    "view": "function os.difftime(t2: integer, t1: integer)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    95,
                    20
                ],
                "name": "difftime",
                "rawdesc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                "start": [
                    95,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.difftime",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                106,
                                27
                            ],
                            "name": "command",
                            "start": [
                                106,
                                20
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "finish": [
                        106,
                        32
                    ],
                    "rawdesc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean?"
                        },
                        {
                            "name": "exitcode",
                            "type": "function.return",
                            "view": "(\"exit\"|\"signal\")?"
                        },
                        {
                            "name": "code",
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        106,
                        0
                    ],
                    "type": "function",
                    "view": "function os.execute(command?: string)\n  -> suc: boolean?\n  2. exitcode: (\"exit\"|\"signal\")?\n  3. code: integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    106,
                    19
                ],
                "name": "execute",
                "rawdesc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "start": [
                    106,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.execute",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                115,
                                21
                            ],
                            "name": "code",
                            "start": [
                                115,
                                17
                            ],
                            "type": "local",
                            "view": "(boolean|integer)?"
                        },
                        {
                            "finish": [
                                115,
                                28
                            ],
                            "name": "close",
                            "start": [
                                115,
                                23
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                    "finish": [
                        115,
                        33
                    ],
                    "rawdesc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                    "start": [
                        115,
                        0
                    ],
                    "type": "function",
                    "view": "function os.exit(code?: boolean|integer, close?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    115,
                    16
                ],
                "name": "exit",
                "rawdesc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                "start": [
                    115,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.exit",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                125,
                                26
                            ],
                            "name": "varname",
                            "start": [
                                125,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                    "finish": [
                        125,
                        31
                    ],
                    "rawdesc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        125,
                        0
                    ],
                    "type": "function",
                    "view": "function os.getenv(varname: string)\n  -> string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    125,
                    18
                ],
                "name": "getenv",
                "rawdesc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                "start": [
                    125,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.getenv",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                135,
                                27
                            ],
                            "name": "filename",
                            "start": [
                                135,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                    "finish": [
                        135,
                        32
                    ],
                    "rawdesc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        135,
                        0
                    ],
                    "type": "function",
                    "view": "function os.remove(filename: string)\n  -> suc: boolean\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    135,
                    18
                ],
                "name": "remove",
                "rawdesc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                "start": [
                    135,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.remove",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                146,
                                26
                            ],
                            "name": "oldname",
                            "start": [
                                146,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                146,
                                35
                            ],
                            "name": "newname",
                            "start": [
                                146,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                    "finish": [
                        146,
                        40
                    ],
                    "rawdesc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        146,
                        0
                    ],
                    "type": "function",
                    "view": "function os.rename(oldname: string, newname: string)\n  -> suc: boolean\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    146,
                    18
                ],
                "name": "rename",
                "rawdesc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                "start": [
                    146,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.rename",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                164,
                                28
                            ],
                            "name": "locale",
                            "start": [
                                164,
                                22
                            ],
                            "type": "local",
                            "view": "string|nil"
                        },
                        {
                            "finish": [
                                164,
                                38
                            ],
                            "name": "category",
                            "start": [
                                164,
                                30
                            ],
                            "type": "local",
                            "view": "(\"all\"|\"collate\"|\"ctype\"|\"monetary\"|\"numeric\"...(+1))?"
                        }
                    ],
                    "desc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                    "finish": [
                        164,
                        43
                    ],
                    "rawdesc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                    "returns": [
                        {
                            "name": "localecategory",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        164,
                        0
                    ],
                    "type": "function",
                    "view": "function os.setlocale(locale: string|nil, category?: \"all\"|\"collate\"|\"ctype\"|\"monetary\"|\"numeric\"...(+1))\n  -> localecategory: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    164,
                    21
                ],
                "name": "setlocale",
                "rawdesc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                "start": [
                    164,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.setlocale",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                230,
                                21
                            ],
                            "name": "date",
                            "start": [
                                230,
                                17
                            ],
                            "type": "local",
                            "view": "osdateparam?"
                        }
                    ],
                    "desc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                    "finish": [
                        230,
                        26
                    ],
                    "rawdesc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        230,
                        0
                    ],
                    "type": "function",
                    "view": "function os.time(date?: osdateparam)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    230,
                    16
                ],
                "name": "time",
                "rawdesc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                "start": [
                    230,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.time",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                    "finish": [
                        239,
                        25
                    ],
                    "rawdesc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        239,
                        0
                    ],
                    "type": "function",
                    "view": "function os.tmpname()\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    239,
                    19
                ],
                "name": "tmpname",
                "rawdesc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                "start": [
                    239,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "os.tmpname",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            19,
                            28
                        ],
                        "start": [
                            19,
                            17
                        ],
                        "type": "doc.extends.name",
                        "view": "osdateparam"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    19,
                    28
                ],
                "start": [
                    19,
                    10
                ],
                "type": "doc.class",
                "view": "osdate",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n1-31\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.day\"])\n",
                "extends": {
                    "finish": [
                        37,
                        30
                    ],
                    "start": [
                        37,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                37,
                                23
                            ],
                            "start": [
                                37,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                37,
                                30
                            ],
                            "start": [
                                37,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    37,
                    30
                ],
                "name": "day",
                "rawdesc": "\n1-31\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.day\"])\n",
                "start": [
                    37,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n0-23\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.hour\"])\n",
                "extends": {
                    "finish": [
                        43,
                        30
                    ],
                    "start": [
                        43,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                43,
                                23
                            ],
                            "start": [
                                43,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                43,
                                30
                            ],
                            "start": [
                                43,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    43,
                    30
                ],
                "name": "hour",
                "rawdesc": "\n0-23\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.hour\"])\n",
                "start": [
                    43,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\ndaylight saving flag, a boolean\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.isdst\"])\n",
                "extends": {
                    "finish": [
                        73,
                        23
                    ],
                    "start": [
                        73,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                73,
                                23
                            ],
                            "start": [
                                73,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    73,
                    23
                ],
                "name": "isdst",
                "rawdesc": "\ndaylight saving flag, a boolean\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.isdst\"])\n",
                "start": [
                    73,
                    10
                ],
                "type": "doc.field",
                "view": "boolean",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n0-59\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.min\"])\n",
                "extends": {
                    "finish": [
                        49,
                        30
                    ],
                    "start": [
                        49,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                49,
                                23
                            ],
                            "start": [
                                49,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                49,
                                30
                            ],
                            "start": [
                                49,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    49,
                    30
                ],
                "name": "min",
                "rawdesc": "\n0-59\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.min\"])\n",
                "start": [
                    49,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n1-12\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.month\"])\n",
                "extends": {
                    "finish": [
                        31,
                        30
                    ],
                    "start": [
                        31,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                31,
                                23
                            ],
                            "start": [
                                31,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                31,
                                30
                            ],
                            "start": [
                                31,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    31,
                    30
                ],
                "name": "month",
                "rawdesc": "\n1-12\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.month\"])\n",
                "start": [
                    31,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n0-61\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.sec\"])\n",
                "extends": {
                    "finish": [
                        55,
                        30
                    ],
                    "start": [
                        55,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                55,
                                23
                            ],
                            "start": [
                                55,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                55,
                                30
                            ],
                            "start": [
                                55,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    55,
                    30
                ],
                "name": "sec",
                "rawdesc": "\n0-61\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.sec\"])\n",
                "start": [
                    55,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nweekday, 1–7, Sunday is 1\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.wday\"])\n",
                "extends": {
                    "finish": [
                        61,
                        30
                    ],
                    "start": [
                        61,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                61,
                                23
                            ],
                            "start": [
                                61,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                61,
                                30
                            ],
                            "start": [
                                61,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    61,
                    30
                ],
                "name": "wday",
                "rawdesc": "\nweekday, 1–7, Sunday is 1\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.wday\"])\n",
                "start": [
                    61,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nday of the year, 1–366\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.yday\"])\n",
                "extends": {
                    "finish": [
                        67,
                        30
                    ],
                    "start": [
                        67,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                67,
                                23
                            ],
                            "start": [
                                67,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                67,
                                30
                            ],
                            "start": [
                                67,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    67,
                    30
                ],
                "name": "yday",
                "rawdesc": "\nday of the year, 1–366\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.yday\"])\n",
                "start": [
                    67,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nfour digits\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.year\"])\n",
                "extends": {
                    "finish": [
                        25,
                        30
                    ],
                    "start": [
                        25,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                25,
                                23
                            ],
                            "start": [
                                25,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                25,
                                30
                            ],
                            "start": [
                                25,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    25,
                    30
                ],
                "name": "year",
                "rawdesc": "\nfour digits\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.year\"])\n",
                "start": [
                    25,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            }
        ],
        "name": "osdate",
        "type": "type",
        "view": "osdate"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    166,
                    21
                ],
                "start": [
                    166,
                    10
                ],
                "type": "doc.class",
                "view": "osdateparam",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n1-31\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.day\"])\n",
                "extends": {
                    "finish": [
                        184,
                        30
                    ],
                    "start": [
                        184,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                184,
                                23
                            ],
                            "start": [
                                184,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                184,
                                30
                            ],
                            "start": [
                                184,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    184,
                    30
                ],
                "name": "day",
                "rawdesc": "\n1-31\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.day\"])\n",
                "start": [
                    184,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n0-23\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.hour\"])\n",
                "extends": {
                    "finish": [
                        190,
                        33
                    ],
                    "start": [
                        190,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                190,
                                31
                            ],
                            "start": [
                                190,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "finish": [
                                        190,
                                        24
                                    ],
                                    "start": [
                                        190,
                                        17
                                    ],
                                    "type": "doc.type.name",
                                    "view": "integer"
                                },
                                {
                                    "finish": [
                                        190,
                                        31
                                    ],
                                    "start": [
                                        190,
                                        25
                                    ],
                                    "type": "doc.type.name",
                                    "view": "string"
                                }
                            ],
                            "view": "string|integer"
                        }
                    ],
                    "view": "(string|integer)?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    190,
                    33
                ],
                "name": "hour",
                "rawdesc": "\n0-23\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.hour\"])\n",
                "start": [
                    190,
                    10
                ],
                "type": "doc.field",
                "view": "(string|integer)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\ndaylight saving flag, a boolean\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.isdst\"])\n",
                "extends": {
                    "finish": [
                        220,
                        24
                    ],
                    "start": [
                        220,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                220,
                                23
                            ],
                            "start": [
                                220,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "boolean"
                        }
                    ],
                    "view": "boolean?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    220,
                    24
                ],
                "name": "isdst",
                "rawdesc": "\ndaylight saving flag, a boolean\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.isdst\"])\n",
                "start": [
                    220,
                    10
                ],
                "type": "doc.field",
                "view": "boolean?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n0-59\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.min\"])\n",
                "extends": {
                    "finish": [
                        196,
                        33
                    ],
                    "start": [
                        196,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                196,
                                31
                            ],
                            "start": [
                                196,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "finish": [
                                        196,
                                        24
                                    ],
                                    "start": [
                                        196,
                                        17
                                    ],
                                    "type": "doc.type.name",
                                    "view": "integer"
                                },
                                {
                                    "finish": [
                                        196,
                                        31
                                    ],
                                    "start": [
                                        196,
                                        25
                                    ],
                                    "type": "doc.type.name",
                                    "view": "string"
                                }
                            ],
                            "view": "string|integer"
                        }
                    ],
                    "view": "(string|integer)?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    196,
                    33
                ],
                "name": "min",
                "rawdesc": "\n0-59\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.min\"])\n",
                "start": [
                    196,
                    10
                ],
                "type": "doc.field",
                "view": "(string|integer)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n1-12\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.month\"])\n",
                "extends": {
                    "finish": [
                        178,
                        30
                    ],
                    "start": [
                        178,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                178,
                                23
                            ],
                            "start": [
                                178,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                178,
                                30
                            ],
                            "start": [
                                178,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    178,
                    30
                ],
                "name": "month",
                "rawdesc": "\n1-12\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.month\"])\n",
                "start": [
                    178,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\n0-61\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.sec\"])\n",
                "extends": {
                    "finish": [
                        202,
                        33
                    ],
                    "start": [
                        202,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                202,
                                31
                            ],
                            "start": [
                                202,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "finish": [
                                        202,
                                        24
                                    ],
                                    "start": [
                                        202,
                                        17
                                    ],
                                    "type": "doc.type.name",
                                    "view": "integer"
                                },
                                {
                                    "finish": [
                                        202,
                                        31
                                    ],
                                    "start": [
                                        202,
                                        25
                                    ],
                                    "type": "doc.type.name",
                                    "view": "string"
                                }
                            ],
                            "view": "string|integer"
                        }
                    ],
                    "view": "(string|integer)?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    202,
                    33
                ],
                "name": "sec",
                "rawdesc": "\n0-61\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.sec\"])\n",
                "start": [
                    202,
                    10
                ],
                "type": "doc.field",
                "view": "(string|integer)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nweekday, 1–7, Sunday is 1\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.wday\"])\n",
                "extends": {
                    "finish": [
                        208,
                        33
                    ],
                    "start": [
                        208,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                208,
                                31
                            ],
                            "start": [
                                208,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "finish": [
                                        208,
                                        24
                                    ],
                                    "start": [
                                        208,
                                        17
                                    ],
                                    "type": "doc.type.name",
                                    "view": "integer"
                                },
                                {
                                    "finish": [
                                        208,
                                        31
                                    ],
                                    "start": [
                                        208,
                                        25
                                    ],
                                    "type": "doc.type.name",
                                    "view": "string"
                                }
                            ],
                            "view": "string|integer"
                        }
                    ],
                    "view": "(string|integer)?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    208,
                    33
                ],
                "name": "wday",
                "rawdesc": "\nweekday, 1–7, Sunday is 1\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.wday\"])\n",
                "start": [
                    208,
                    10
                ],
                "type": "doc.field",
                "view": "(string|integer)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nday of the year, 1–366\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.yday\"])\n",
                "extends": {
                    "finish": [
                        214,
                        33
                    ],
                    "start": [
                        214,
                        17
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                214,
                                31
                            ],
                            "start": [
                                214,
                                17
                            ],
                            "type": "doc.type",
                            "types": [
                                {
                                    "finish": [
                                        214,
                                        24
                                    ],
                                    "start": [
                                        214,
                                        17
                                    ],
                                    "type": "doc.type.name",
                                    "view": "integer"
                                },
                                {
                                    "finish": [
                                        214,
                                        31
                                    ],
                                    "start": [
                                        214,
                                        25
                                    ],
                                    "type": "doc.type.name",
                                    "view": "string"
                                }
                            ],
                            "view": "string|integer"
                        }
                    ],
                    "view": "(string|integer)?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    214,
                    33
                ],
                "name": "yday",
                "rawdesc": "\nday of the year, 1–366\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.yday\"])\n",
                "start": [
                    214,
                    10
                ],
                "type": "doc.field",
                "view": "(string|integer)?",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nfour digits\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.year\"])\n",
                "extends": {
                    "finish": [
                        172,
                        30
                    ],
                    "start": [
                        172,
                        16
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                172,
                                23
                            ],
                            "start": [
                                172,
                                16
                            ],
                            "type": "doc.type.name",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                172,
                                30
                            ],
                            "start": [
                                172,
                                24
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string|integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    172,
                    30
                ],
                "name": "year",
                "rawdesc": "\nfour digits\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-osdate.year\"])\n",
                "start": [
                    172,
                    10
                ],
                "type": "doc.field",
                "view": "string|integer",
                "visible": "public"
            }
        ],
        "name": "osdateparam",
        "type": "type",
        "view": "osdateparam"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    7,
                    15
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "oslib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                    "finish": [
                        17,
                        23
                    ],
                    "rawdesc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number"
                        }
                    ],
                    "start": [
                        17,
                        0
                    ],
                    "type": "function",
                    "view": "function os.clock()\n  -> number"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    17,
                    17
                ],
                "name": "clock",
                "rawdesc": "\nReturns an approximation of the amount in seconds of CPU time used by the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.clock\"])",
                "start": [
                    17,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                84,
                                23
                            ],
                            "name": "format",
                            "start": [
                                84,
                                17
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                84,
                                29
                            ],
                            "name": "time",
                            "start": [
                                84,
                                25
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                    "finish": [
                        84,
                        34
                    ],
                    "rawdesc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string|osdate"
                        }
                    ],
                    "start": [
                        84,
                        0
                    ],
                    "type": "function",
                    "view": "function os.date(format?: string, time?: integer)\n  -> string|osdate"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    84,
                    16
                ],
                "name": "date",
                "rawdesc": "\nReturns a string or a table containing date and time, formatted according to the given string `format`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.date\"])",
                "start": [
                    84,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                95,
                                23
                            ],
                            "name": "t2",
                            "start": [
                                95,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                95,
                                27
                            ],
                            "name": "t1",
                            "start": [
                                95,
                                25
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                    "finish": [
                        95,
                        32
                    ],
                    "rawdesc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        95,
                        0
                    ],
                    "type": "function",
                    "view": "function os.difftime(t2: integer, t1: integer)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    95,
                    20
                ],
                "name": "difftime",
                "rawdesc": "\nReturns the difference, in seconds, from time `t1` to time `t2`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.difftime\"])",
                "start": [
                    95,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                106,
                                27
                            ],
                            "name": "command",
                            "start": [
                                106,
                                20
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "finish": [
                        106,
                        32
                    ],
                    "rawdesc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean?"
                        },
                        {
                            "name": "exitcode",
                            "type": "function.return",
                            "view": "(\"exit\"|\"signal\")?"
                        },
                        {
                            "name": "code",
                            "type": "function.return",
                            "view": "integer?"
                        }
                    ],
                    "start": [
                        106,
                        0
                    ],
                    "type": "function",
                    "view": "function os.execute(command?: string)\n  -> suc: boolean?\n  2. exitcode: (\"exit\"|\"signal\")?\n  3. code: integer?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    106,
                    19
                ],
                "name": "execute",
                "rawdesc": "\nPasses `command` to be executed by an operating system shell.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.execute\"])\n\n\n```lua\nexitcode:\n    | \"exit\"\n    | \"signal\"\n```",
                "start": [
                    106,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                115,
                                21
                            ],
                            "name": "code",
                            "start": [
                                115,
                                17
                            ],
                            "type": "local",
                            "view": "(boolean|integer)?"
                        },
                        {
                            "finish": [
                                115,
                                28
                            ],
                            "name": "close",
                            "start": [
                                115,
                                23
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                    "finish": [
                        115,
                        33
                    ],
                    "rawdesc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                    "start": [
                        115,
                        0
                    ],
                    "type": "function",
                    "view": "function os.exit(code?: boolean|integer, close?: boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    115,
                    16
                ],
                "name": "exit",
                "rawdesc": "\nCalls the ISO C function `exit` to terminate the host program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.exit\"])",
                "start": [
                    115,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                125,
                                26
                            ],
                            "name": "varname",
                            "start": [
                                125,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                    "finish": [
                        125,
                        31
                    ],
                    "rawdesc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        125,
                        0
                    ],
                    "type": "function",
                    "view": "function os.getenv(varname: string)\n  -> string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    125,
                    18
                ],
                "name": "getenv",
                "rawdesc": "\nReturns the value of the process environment variable `varname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.getenv\"])",
                "start": [
                    125,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                135,
                                27
                            ],
                            "name": "filename",
                            "start": [
                                135,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                    "finish": [
                        135,
                        32
                    ],
                    "rawdesc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        135,
                        0
                    ],
                    "type": "function",
                    "view": "function os.remove(filename: string)\n  -> suc: boolean\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    135,
                    18
                ],
                "name": "remove",
                "rawdesc": "\nDeletes the file with the given name.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.remove\"])",
                "start": [
                    135,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                146,
                                26
                            ],
                            "name": "oldname",
                            "start": [
                                146,
                                19
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                146,
                                35
                            ],
                            "name": "newname",
                            "start": [
                                146,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                    "finish": [
                        146,
                        40
                    ],
                    "rawdesc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                    "returns": [
                        {
                            "name": "suc",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        146,
                        0
                    ],
                    "type": "function",
                    "view": "function os.rename(oldname: string, newname: string)\n  -> suc: boolean\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    146,
                    18
                ],
                "name": "rename",
                "rawdesc": "\nRenames the file or directory named `oldname` to `newname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.rename\"])",
                "start": [
                    146,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                164,
                                28
                            ],
                            "name": "locale",
                            "start": [
                                164,
                                22
                            ],
                            "type": "local",
                            "view": "string|nil"
                        },
                        {
                            "finish": [
                                164,
                                38
                            ],
                            "name": "category",
                            "start": [
                                164,
                                30
                            ],
                            "type": "local",
                            "view": "(\"all\"|\"collate\"|\"ctype\"|\"monetary\"|\"numeric\"...(+1))?"
                        }
                    ],
                    "desc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                    "finish": [
                        164,
                        43
                    ],
                    "rawdesc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                    "returns": [
                        {
                            "name": "localecategory",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        164,
                        0
                    ],
                    "type": "function",
                    "view": "function os.setlocale(locale: string|nil, category?: \"all\"|\"collate\"|\"ctype\"|\"monetary\"|\"numeric\"...(+1))\n  -> localecategory: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    164,
                    21
                ],
                "name": "setlocale",
                "rawdesc": "\nSets the current locale of the program.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.setlocale\"])\n\n\n```lua\ncategory:\n   -> \"all\"\n    | \"collate\"\n    | \"ctype\"\n    | \"monetary\"\n    | \"numeric\"\n    | \"time\"\n```",
                "start": [
                    164,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                230,
                                21
                            ],
                            "name": "date",
                            "start": [
                                230,
                                17
                            ],
                            "type": "local",
                            "view": "osdateparam?"
                        }
                    ],
                    "desc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                    "finish": [
                        230,
                        26
                    ],
                    "rawdesc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        230,
                        0
                    ],
                    "type": "function",
                    "view": "function os.time(date?: osdateparam)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    230,
                    16
                ],
                "name": "time",
                "rawdesc": "\nReturns the current time when called without arguments, or a time representing the local date and time specified by the given table.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.time\"])",
                "start": [
                    230,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                "extends": {
                    "args": [],
                    "desc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                    "finish": [
                        239,
                        25
                    ],
                    "rawdesc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        239,
                        0
                    ],
                    "type": "function",
                    "view": "function os.tmpname()\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/os.lua",
                "finish": [
                    239,
                    19
                ],
                "name": "tmpname",
                "rawdesc": "\nReturns a string with a file name that can be used for a temporary file.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-os.tmpname\"])",
                "start": [
                    239,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "oslib",
        "type": "type",
        "view": "oslib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package\"])\n",
                    "finish": [
                        41,
                        12
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package\"])\n",
                    "start": [
                        41,
                        10
                    ],
                    "type": "table",
                    "view": "packagelib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    41,
                    7
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package\"])\n",
                "start": [
                    41,
                    0
                ],
                "type": "setglobal",
                "view": "packagelib",
                "visible": "public"
            }
        ],
        "name": "package",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA string describing some compile-time configurations for packages.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.config\"])\n",
                "extends": {
                    "finish": [
                        53,
                        3
                    ],
                    "start": [
                        48,
                        17
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    48,
                    14
                ],
                "name": "config",
                "rawdesc": "\nA string describing some compile-time configurations for packages.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.config\"])\n",
                "start": [
                    48,
                    0
                ],
                "type": "setfield",
                "view": "string",
                "visible": "public"
            }
        ],
        "name": "package.config",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loaders\"])\n",
                "extends": {
                    "finish": [
                        61,
                        20
                    ],
                    "start": [
                        61,
                        18
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    61,
                    15
                ],
                "name": "loaders",
                "rawdesc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loaders\"])\n",
                "start": [
                    61,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            }
        ],
        "name": "package.loaders",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                71,
                                32
                            ],
                            "name": "libname",
                            "start": [
                                71,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                71,
                                42
                            ],
                            "name": "funcname",
                            "start": [
                                71,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                    "finish": [
                        71,
                        47
                    ],
                    "rawdesc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        71,
                        0
                    ],
                    "type": "function",
                    "view": "function package.loadlib(libname: string, funcname: string)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    71,
                    24
                ],
                "name": "loadlib",
                "rawdesc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                "start": [
                    71,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "package.loadlib",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchers\"])\n",
                "extends": {
                    "finish": [
                        79,
                        22
                    ],
                    "start": [
                        79,
                        20
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    79,
                    17
                ],
                "name": "searchers",
                "rawdesc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchers\"])\n",
                "start": [
                    79,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            }
        ],
        "name": "package.searchers",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                94,
                                32
                            ],
                            "name": "name",
                            "start": [
                                94,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                94,
                                38
                            ],
                            "name": "path",
                            "start": [
                                94,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                94,
                                43
                            ],
                            "name": "sep",
                            "start": [
                                94,
                                40
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                94,
                                48
                            ],
                            "name": "rep",
                            "start": [
                                94,
                                45
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                    "finish": [
                        94,
                        53
                    ],
                    "rawdesc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                    "returns": [
                        {
                            "name": "filename",
                            "type": "function.return",
                            "view": "string?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        94,
                        0
                    ],
                    "type": "function",
                    "view": "function package.searchpath(name: string, path: string, sep?: string, rep?: string)\n  -> filename: string?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    94,
                    27
                ],
                "name": "searchpath",
                "rawdesc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                "start": [
                    94,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "package.searchpath",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                103,
                                30
                            ],
                            "name": "module",
                            "start": [
                                103,
                                24
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                    "finish": [
                        103,
                        35
                    ],
                    "rawdesc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                    "start": [
                        103,
                        0
                    ],
                    "type": "function",
                    "view": "function package.seeall(module: table)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    103,
                    23
                ],
                "name": "seeall",
                "rawdesc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                "start": [
                    103,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "package.seeall",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    16,
                    20
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package\"])\n",
                "start": [
                    16,
                    10
                ],
                "type": "doc.class",
                "view": "packagelib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA string describing some compile-time configurations for packages.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.config\"])\n",
                "extends": {
                    "finish": [
                        53,
                        3
                    ],
                    "start": [
                        48,
                        17
                    ],
                    "type": "string",
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    48,
                    14
                ],
                "name": "config",
                "rawdesc": "\nA string describing some compile-time configurations for packages.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.config\"])\n",
                "start": [
                    48,
                    0
                ],
                "type": "setfield",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe path used by `require` to search for a C loader.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.cpath\"])\n",
                "extends": {
                    "finish": [
                        22,
                        26
                    ],
                    "start": [
                        22,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                22,
                                26
                            ],
                            "start": [
                                22,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    22,
                    26
                ],
                "name": "cpath",
                "rawdesc": "\nThe path used by `require` to search for a C loader.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.cpath\"])\n",
                "start": [
                    22,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA table used by `require` to control which modules are already loaded.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loaded\"])\n",
                "extends": {
                    "finish": [
                        28,
                        25
                    ],
                    "start": [
                        28,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                28,
                                25
                            ],
                            "start": [
                                28,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    28,
                    25
                ],
                "name": "loaded",
                "rawdesc": "\nA table used by `require` to control which modules are already loaded.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loaded\"])\n",
                "start": [
                    28,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loaders\"])\n",
                "extends": {
                    "finish": [
                        61,
                        20
                    ],
                    "start": [
                        61,
                        18
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    61,
                    15
                ],
                "name": "loaders",
                "rawdesc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loaders\"])\n",
                "start": [
                    61,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                71,
                                32
                            ],
                            "name": "libname",
                            "start": [
                                71,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                71,
                                42
                            ],
                            "name": "funcname",
                            "start": [
                                71,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                    "finish": [
                        71,
                        47
                    ],
                    "rawdesc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        71,
                        0
                    ],
                    "type": "function",
                    "view": "function package.loadlib(libname: string, funcname: string)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    71,
                    24
                ],
                "name": "loadlib",
                "rawdesc": "\nDynamically links the host program with the C library `libname`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.loadlib\"])",
                "start": [
                    71,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nThe path used by `require` to search for a Lua loader.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.path\"])\n",
                "extends": {
                    "finish": [
                        34,
                        26
                    ],
                    "start": [
                        34,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                34,
                                26
                            ],
                            "start": [
                                34,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "string"
                        }
                    ],
                    "view": "string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    34,
                    26
                ],
                "name": "path",
                "rawdesc": "\nThe path used by `require` to search for a Lua loader.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.path\"])\n",
                "start": [
                    34,
                    10
                ],
                "type": "doc.field",
                "view": "string",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nA table to store loaders for specific modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.preload\"])\n",
                "extends": {
                    "finish": [
                        40,
                        25
                    ],
                    "start": [
                        40,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                40,
                                25
                            ],
                            "start": [
                                40,
                                20
                            ],
                            "type": "doc.type.name",
                            "view": "table"
                        }
                    ],
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    40,
                    25
                ],
                "name": "preload",
                "rawdesc": "\nA table to store loaders for specific modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.preload\"])\n",
                "start": [
                    40,
                    10
                ],
                "type": "doc.field",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchers\"])\n",
                "extends": {
                    "finish": [
                        79,
                        22
                    ],
                    "start": [
                        79,
                        20
                    ],
                    "type": "table",
                    "view": "table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    79,
                    17
                ],
                "name": "searchers",
                "rawdesc": "\nA table used by `require` to control how to load modules.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchers\"])\n",
                "start": [
                    79,
                    0
                ],
                "type": "setfield",
                "view": "table",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                94,
                                32
                            ],
                            "name": "name",
                            "start": [
                                94,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                94,
                                38
                            ],
                            "name": "path",
                            "start": [
                                94,
                                34
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                94,
                                43
                            ],
                            "name": "sep",
                            "start": [
                                94,
                                40
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                94,
                                48
                            ],
                            "name": "rep",
                            "start": [
                                94,
                                45
                            ],
                            "type": "local",
                            "view": "string?"
                        }
                    ],
                    "desc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                    "finish": [
                        94,
                        53
                    ],
                    "rawdesc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                    "returns": [
                        {
                            "name": "filename",
                            "type": "function.return",
                            "view": "string?"
                        },
                        {
                            "name": "errmsg",
                            "type": "function.return",
                            "view": "string?"
                        }
                    ],
                    "start": [
                        94,
                        0
                    ],
                    "type": "function",
                    "view": "function package.searchpath(name: string, path: string, sep?: string, rep?: string)\n  -> filename: string?\n  2. errmsg: string?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    94,
                    27
                ],
                "name": "searchpath",
                "rawdesc": "\nSearches for the given `name` in the given `path`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.searchpath\"])",
                "start": [
                    94,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                103,
                                30
                            ],
                            "name": "module",
                            "start": [
                                103,
                                24
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                    "finish": [
                        103,
                        35
                    ],
                    "rawdesc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                    "start": [
                        103,
                        0
                    ],
                    "type": "function",
                    "view": "function package.seeall(module: table)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    103,
                    23
                ],
                "name": "seeall",
                "rawdesc": "\nSets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-package.seeall\"])",
                "start": [
                    103,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "packagelib",
        "type": "type",
        "view": "packagelib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIf `t` has a metamethod `__pairs`, calls it with t as argument and returns the first three results from the call.\n\nOtherwise, returns three values: the [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) function, the table `t`, and `nil`, so that the construction\n```lua\n    for k,v in pairs(t) do body end\n```\nwill iterate over all key–value pairs of table `t`.\n\nSee function [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) for the caveats of modifying the table during its traversal.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pairs\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                210,
                                16
                            ],
                            "name": "t",
                            "start": [
                                210,
                                15
                            ],
                            "type": "local",
                            "view": "<T:table>"
                        }
                    ],
                    "desc": "\nIf `t` has a metamethod `__pairs`, calls it with t as argument and returns the first three results from the call.\n\nOtherwise, returns three values: the [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) function, the table `t`, and `nil`, so that the construction\n```lua\n    for k,v in pairs(t) do body end\n```\nwill iterate over all key–value pairs of table `t`.\n\nSee function [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) for the caveats of modifying the table during its traversal.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pairs\"])",
                    "finish": [
                        210,
                        21
                    ],
                    "rawdesc": "\nIf `t` has a metamethod `__pairs`, calls it with t as argument and returns the first three results from the call.\n\nOtherwise, returns three values: the [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) function, the table `t`, and `nil`, so that the construction\n```lua\n    for k,v in pairs(t) do body end\n```\nwill iterate over all key–value pairs of table `t`.\n\nSee function [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) for the caveats of modifying the table during its traversal.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pairs\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun(table: table<<K>, <V>>, index?: <K>):<K>, <V>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T:table>"
                        }
                    ],
                    "start": [
                        210,
                        0
                    ],
                    "type": "function",
                    "view": "function pairs(t: <T:table>)\n  -> fun(table: table<<K>, <V>>, index?: <K>):<K>, <V>\n  2. <T:table>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    210,
                    14
                ],
                "rawdesc": "\nIf `t` has a metamethod `__pairs`, calls it with t as argument and returns the first three results from the call.\n\nOtherwise, returns three values: the [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) function, the table `t`, and `nil`, so that the construction\n```lua\n    for k,v in pairs(t) do body end\n```\nwill iterate over all key–value pairs of table `t`.\n\nSee function [next](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-next\"]) for the caveats of modifying the table during its traversal.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pairs\"])",
                "start": [
                    210,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "pairs",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCalls the function `f` with the given arguments in *protected mode*. This means that any error inside `f` is not propagated; instead, `pcall` catches the error and returns a status code. Its first result is the status code (a boolean), which is true if the call succeeds without errors. In such case, `pcall` also returns all results from the call, after this first result. In case of any error, `pcall` returns `false` plus the error object.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pcall\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                224,
                                16
                            ],
                            "name": "f",
                            "start": [
                                224,
                                15
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                224,
                                22
                            ],
                            "name": "arg1",
                            "start": [
                                224,
                                18
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                224,
                                27
                            ],
                            "start": [
                                224,
                                24
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nCalls the function `f` with the given arguments in *protected mode*. This means that any error inside `f` is not propagated; instead, `pcall` catches the error and returns a status code. Its first result is the status code (a boolean), which is true if the call succeeds without errors. In such case, `pcall` also returns all results from the call, after this first result. In case of any error, `pcall` returns `false` plus the error object.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pcall\"])",
                    "finish": [
                        224,
                        32
                    ],
                    "rawdesc": "\nCalls the function `f` with the given arguments in *protected mode*. This means that any error inside `f` is not propagated; instead, `pcall` catches the error and returns a status code. Its first result is the status code (a boolean), which is true if the call succeeds without errors. In such case, `pcall` also returns all results from the call, after this first result. In case of any error, `pcall` returns `false` plus the error object.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pcall\"])",
                    "returns": [
                        {
                            "name": "success",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "result",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        224,
                        0
                    ],
                    "type": "function",
                    "view": "function pcall(f: fun(...any):...unknown, arg1?: any, ...any)\n  -> success: boolean\n  2. result: any\n  3. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    224,
                    14
                ],
                "rawdesc": "\nCalls the function `f` with the given arguments in *protected mode*. This means that any error inside `f` is not propagated; instead, `pcall` catches the error and returns a status code. Its first result is the status code (a boolean), which is true if the call succeeds without errors. In such case, `pcall` also returns all results from the call, after this first result. In case of any error, `pcall` returns `false` plus the error object.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-pcall\"])",
                "start": [
                    224,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "pcall",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\npopenmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                "finish": [
                    108,
                    8
                ],
                "rawdesc": "```lua\npopenmode:\n    | \"r\" -- Read data from this program by `file`.\n    | \"w\" -- Write data to this program by `file`.\n```",
                "start": [
                    106,
                    10
                ],
                "type": "doc.alias",
                "view": "\"r\"|\"w\""
            }
        ],
        "fields": [],
        "name": "popenmode",
        "type": "type",
        "view": "popenmode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReceives any number of arguments and prints their values to `stdout`, converting each argument to a string following the same rules of [tostring](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-tostring\"]).\nThe function print is not intended for formatted output, but only as a quick way to show a value, for instance for debugging. For complete control over the output, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]) and [io.write](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-io.write\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-print\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                234,
                                18
                            ],
                            "start": [
                                234,
                                15
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReceives any number of arguments and prints their values to `stdout`, converting each argument to a string following the same rules of [tostring](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-tostring\"]).\nThe function print is not intended for formatted output, but only as a quick way to show a value, for instance for debugging. For complete control over the output, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]) and [io.write](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-io.write\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-print\"])",
                    "finish": [
                        234,
                        23
                    ],
                    "rawdesc": "\nReceives any number of arguments and prints their values to `stdout`, converting each argument to a string following the same rules of [tostring](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-tostring\"]).\nThe function print is not intended for formatted output, but only as a quick way to show a value, for instance for debugging. For complete control over the output, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]) and [io.write](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-io.write\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-print\"])",
                    "start": [
                        234,
                        0
                    ],
                    "type": "function",
                    "view": "function print(...any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    234,
                    14
                ],
                "rawdesc": "\nReceives any number of arguments and prints their values to `stdout`, converting each argument to a string following the same rules of [tostring](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-tostring\"]).\nThe function print is not intended for formatted output, but only as a quick way to show a value, for instance for debugging. For complete control over the output, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]) and [io.write](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-io.write\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-print\"])",
                "start": [
                    234,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "print",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nChecks whether v1 is equal to v2, without invoking the `__eq` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawequal\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                245,
                                20
                            ],
                            "name": "v1",
                            "start": [
                                245,
                                18
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                245,
                                24
                            ],
                            "name": "v2",
                            "start": [
                                245,
                                22
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nChecks whether v1 is equal to v2, without invoking the `__eq` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawequal\"])",
                    "finish": [
                        245,
                        29
                    ],
                    "rawdesc": "\nChecks whether v1 is equal to v2, without invoking the `__eq` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawequal\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "boolean"
                        }
                    ],
                    "start": [
                        245,
                        0
                    ],
                    "type": "function",
                    "view": "function rawequal(v1: any, v2: any)\n  -> boolean"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    245,
                    17
                ],
                "rawdesc": "\nChecks whether v1 is equal to v2, without invoking the `__eq` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawequal\"])",
                "start": [
                    245,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "rawequal",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGets the real value of `table[index]`, without invoking the `__index` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawget\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                256,
                                21
                            ],
                            "name": "table",
                            "start": [
                                256,
                                16
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                256,
                                28
                            ],
                            "name": "index",
                            "start": [
                                256,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nGets the real value of `table[index]`, without invoking the `__index` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawget\"])",
                    "finish": [
                        256,
                        33
                    ],
                    "rawdesc": "\nGets the real value of `table[index]`, without invoking the `__index` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawget\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        256,
                        0
                    ],
                    "type": "function",
                    "view": "function rawget(table: table, index: any)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    256,
                    15
                ],
                "rawdesc": "\nGets the real value of `table[index]`, without invoking the `__index` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawget\"])",
                "start": [
                    256,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "rawget",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the length of the object `v`, without invoking the `__len` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawlen\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                266,
                                17
                            ],
                            "name": "v",
                            "start": [
                                266,
                                16
                            ],
                            "type": "local",
                            "view": "string|table"
                        }
                    ],
                    "desc": "\nReturns the length of the object `v`, without invoking the `__len` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawlen\"])",
                    "finish": [
                        266,
                        22
                    ],
                    "rawdesc": "\nReturns the length of the object `v`, without invoking the `__len` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawlen\"])",
                    "returns": [
                        {
                            "name": "len",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        266,
                        0
                    ],
                    "type": "function",
                    "view": "function rawlen(v: string|table)\n  -> len: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    266,
                    15
                ],
                "rawdesc": "\nReturns the length of the object `v`, without invoking the `__len` metamethod.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawlen\"])",
                "start": [
                    266,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "rawlen",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the real value of `table[index]` to `value`, without using the `__newindex` metavalue. `table` must be a table, `index` any value different from `nil` and `NaN`, and `value` any Lua value.\nThis function returns `table`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawset\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                279,
                                21
                            ],
                            "name": "table",
                            "start": [
                                279,
                                16
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                279,
                                28
                            ],
                            "name": "index",
                            "start": [
                                279,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                279,
                                35
                            ],
                            "name": "value",
                            "start": [
                                279,
                                30
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nSets the real value of `table[index]` to `value`, without using the `__newindex` metavalue. `table` must be a table, `index` any value different from `nil` and `NaN`, and `value` any Lua value.\nThis function returns `table`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawset\"])",
                    "finish": [
                        279,
                        40
                    ],
                    "rawdesc": "\nSets the real value of `table[index]` to `value`, without using the `__newindex` metavalue. `table` must be a table, `index` any value different from `nil` and `NaN`, and `value` any Lua value.\nThis function returns `table`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawset\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        279,
                        0
                    ],
                    "type": "function",
                    "view": "function rawset(table: table, index: any, value: any)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    279,
                    15
                ],
                "rawdesc": "\nSets the real value of `table[index]` to `value`, without using the `__newindex` metavalue. `table` must be a table, `index` any value different from `nil` and `NaN`, and `value` any Lua value.\nThis function returns `table`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-rawset\"])",
                "start": [
                    279,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "rawset",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\nreadmode:\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "finish": [
                    177,
                    9
                ],
                "rawdesc": "```lua\nreadmode:\n    | \"*n\" -- Reads a numeral and returns it as number.\n    | \"*a\" -- Reads the whole file.\n   -> \"*l\" -- Reads the next line skipping the end of line.\n    | \"*L\" -- Reads the next line keeping the end of line.\n```",
                "start": [
                    173,
                    10
                ],
                "type": "doc.alias",
                "view": "string|integer|\"*L\"|\"*a\"|\"*l\"...(+1)"
            }
        ],
        "fields": [],
        "name": "readmode",
        "type": "type",
        "view": "readmode"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nLoads the given module, returns any value returned by the given module(`true` when `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-require\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                9,
                                24
                            ],
                            "name": "modname",
                            "start": [
                                9,
                                17
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nLoads the given module, returns any value returned by the given module(`true` when `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-require\"])",
                    "finish": [
                        9,
                        29
                    ],
                    "rawdesc": "\nLoads the given module, returns any value returned by the given module(`true` when `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-require\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "unknown"
                        }
                    ],
                    "start": [
                        9,
                        0
                    ],
                    "type": "function",
                    "view": "function require(modname: string)\n  -> unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/package.lua",
                "finish": [
                    9,
                    16
                ],
                "rawdesc": "\nLoads the given module, returns any value returned by the given module(`true` when `nil`).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-require\"])",
                "start": [
                    9,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "require",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\nseekwhence:\n    | \"set\" -- Base is beginning of the file.\n   -> \"cur\" -- Base is current position.\n    | \"end\" -- Base is end of file.\n```",
                "finish": [
                    227,
                    10
                ],
                "rawdesc": "```lua\nseekwhence:\n    | \"set\" -- Base is beginning of the file.\n   -> \"cur\" -- Base is current position.\n    | \"end\" -- Base is end of file.\n```",
                "start": [
                    224,
                    10
                ],
                "type": "doc.alias",
                "view": "\"cur\"|\"end\"|\"set\""
            }
        ],
        "fields": [],
        "name": "seekwhence",
        "type": "type",
        "view": "seekwhence"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nIf `index` is a number, returns all arguments after argument number `index`; a negative number indexes from the end (`-1` is the last argument). Otherwise, `index` must be the string `\"#\"`, and `select` returns the total number of extra arguments it received.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-select\"])\n\n\n```lua\nindex:\n    | \"#\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                290,
                                21
                            ],
                            "name": "index",
                            "start": [
                                290,
                                16
                            ],
                            "type": "local",
                            "view": "integer|\"#\""
                        },
                        {
                            "finish": [
                                290,
                                26
                            ],
                            "start": [
                                290,
                                23
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nIf `index` is a number, returns all arguments after argument number `index`; a negative number indexes from the end (`-1` is the last argument). Otherwise, `index` must be the string `\"#\"`, and `select` returns the total number of extra arguments it received.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-select\"])\n\n\n```lua\nindex:\n    | \"#\"\n```",
                    "finish": [
                        290,
                        31
                    ],
                    "rawdesc": "\nIf `index` is a number, returns all arguments after argument number `index`; a negative number indexes from the end (`-1` is the last argument). Otherwise, `index` must be the string `\"#\"`, and `select` returns the total number of extra arguments it received.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-select\"])\n\n\n```lua\nindex:\n    | \"#\"\n```",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        290,
                        0
                    ],
                    "type": "function",
                    "view": "function select(index: integer|\"#\", ...any)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    290,
                    15
                ],
                "rawdesc": "\nIf `index` is a number, returns all arguments after argument number `index`; a negative number indexes from the end (`-1` is the last argument). Otherwise, `index` must be the string `\"#\"`, and `select` returns the total number of extra arguments it received.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-select\"])\n\n\n```lua\nindex:\n    | \"#\"\n```",
                "start": [
                    290,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "select",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the environment to be used by the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setfenv\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                301,
                                18
                            ],
                            "name": "f",
                            "start": [
                                301,
                                17
                            ],
                            "type": "local",
                            "view": "integer|fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                301,
                                25
                            ],
                            "name": "table",
                            "start": [
                                301,
                                20
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nSets the environment to be used by the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setfenv\"])",
                    "finish": [
                        301,
                        30
                    ],
                    "rawdesc": "\nSets the environment to be used by the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setfenv\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "function"
                        }
                    ],
                    "start": [
                        301,
                        0
                    ],
                    "type": "function",
                    "view": "function setfenv(f: integer|fun(...any):...unknown, table: table)\n  -> function"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    301,
                    16
                ],
                "rawdesc": "\nSets the environment to be used by the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setfenv\"])",
                "start": [
                    301,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "setfenv",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSets the metatable for the given table. If `metatable` is `nil`, removes the metatable of the given table. If the original metatable has a `__metatable` field, raises an error.\n\nThis function returns `table`.\n\nTo change the metatable of other types from Lua code, you must use the debug library ([§6.10](command:extension.lua.doc?[\"en-us/51/manual.html/6.10\"])).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setmetatable\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                338,
                                27
                            ],
                            "name": "table",
                            "start": [
                                338,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                338,
                                38
                            ],
                            "name": "metatable",
                            "start": [
                                338,
                                29
                            ],
                            "type": "local",
                            "view": "(table|metatable)?"
                        }
                    ],
                    "desc": "\nSets the metatable for the given table. If `metatable` is `nil`, removes the metatable of the given table. If the original metatable has a `__metatable` field, raises an error.\n\nThis function returns `table`.\n\nTo change the metatable of other types from Lua code, you must use the debug library ([§6.10](command:extension.lua.doc?[\"en-us/51/manual.html/6.10\"])).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setmetatable\"])",
                    "finish": [
                        338,
                        43
                    ],
                    "rawdesc": "\nSets the metatable for the given table. If `metatable` is `nil`, removes the metatable of the given table. If the original metatable has a `__metatable` field, raises an error.\n\nThis function returns `table`.\n\nTo change the metatable of other types from Lua code, you must use the debug library ([§6.10](command:extension.lua.doc?[\"en-us/51/manual.html/6.10\"])).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setmetatable\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        338,
                        0
                    ],
                    "type": "function",
                    "view": "function setmetatable(table: table, metatable?: table|metatable)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    338,
                    21
                ],
                "rawdesc": "\nSets the metatable for the given table. If `metatable` is `nil`, removes the metatable of the given table. If the original metatable has a `__metatable` field, raises an error.\n\nThis function returns `table`.\n\nTo change the metatable of other types from Lua code, you must use the debug library ([§6.10](command:extension.lua.doc?[\"en-us/51/manual.html/6.10\"])).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-setmetatable\"])",
                "start": [
                    338,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "setmetatable",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                    "finish": [
                        8,
                        11
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                    "start": [
                        8,
                        9
                    ],
                    "type": "table",
                    "view": "stringlib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    8,
                    6
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "stringlib",
                "visible": "public"
            }
        ],
        "name": "string",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                        "finish": [
                            12,
                            27
                        ],
                        "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                        "start": [
                            12,
                            18
                        ],
                        "type": "doc.extends.name",
                        "view": "stringlib"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    12,
                    27
                ],
                "start": [
                    12,
                    10
                ],
                "type": "doc.class",
                "view": "string",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                20,
                                22
                            ],
                            "name": "s",
                            "start": [
                                20,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                20,
                                25
                            ],
                            "name": "i",
                            "start": [
                                20,
                                24
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                20,
                                28
                            ],
                            "name": "j",
                            "start": [
                                20,
                                27
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "finish": [
                        20,
                        33
                    ],
                    "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function string.byte(s: string|number, i?: integer, j?: integer)\n  -> ...integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    20,
                    20
                ],
                "name": "byte",
                "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                31,
                                25
                            ],
                            "name": "byte",
                            "start": [
                                31,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                31,
                                30
                            ],
                            "start": [
                                31,
                                27
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "finish": [
                        31,
                        35
                    ],
                    "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function string.char(byte: integer, ...integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    31,
                    20
                ],
                "name": "char",
                "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                42,
                                22
                            ],
                            "name": "f",
                            "start": [
                                42,
                                21
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                42,
                                29
                            ],
                            "name": "strip",
                            "start": [
                                42,
                                24
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "finish": [
                        42,
                        34
                    ],
                    "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function string.dump(f: fun(...any):...unknown, strip?: boolean)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    42,
                    20
                ],
                "name": "dump",
                "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                57,
                                22
                            ],
                            "name": "s",
                            "start": [
                                57,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                57,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                37
                            ],
                            "name": "init",
                            "start": [
                                57,
                                33
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                57,
                                44
                            ],
                            "name": "plain",
                            "start": [
                                57,
                                39
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                    "finish": [
                        57,
                        49
                    ],
                    "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                    "returns": [
                        {
                            "name": "start",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "name": "end",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "desc": "captured",
                            "name": "...",
                            "rawdesc": "captured",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        57,
                        0
                    ],
                    "type": "function",
                    "view": "function string.find(s: string|number, pattern: string|number, init?: integer, plain?: boolean)\n  -> start: integer|nil\n  2. end: integer|nil\n  3. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    57,
                    20
                ],
                "name": "find",
                "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                "start": [
                    57,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                68,
                                24
                            ],
                            "name": "s",
                            "start": [
                                68,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                68,
                                29
                            ],
                            "start": [
                                68,
                                26
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "finish": [
                        68,
                        34
                    ],
                    "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function string.format(s: string|number, ...any)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    68,
                    22
                ],
                "name": "format",
                "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                79,
                                24
                            ],
                            "name": "s",
                            "start": [
                                79,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                79,
                                33
                            ],
                            "name": "pattern",
                            "start": [
                                79,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "finish": [
                        79,
                        38
                    ],
                    "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():string, ...unknown"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gmatch(s: string|number, pattern: string|number)\n  -> fun():string, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    79,
                    22
                ],
                "name": "gmatch",
                "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                92,
                                22
                            ],
                            "name": "s",
                            "start": [
                                92,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                92,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                37
                            ],
                            "name": "repl",
                            "start": [
                                92,
                                33
                            ],
                            "type": "local",
                            "view": "string|number|function|table"
                        },
                        {
                            "finish": [
                                92,
                                40
                            ],
                            "name": "n",
                            "start": [
                                92,
                                39
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "finish": [
                        92,
                        45
                    ],
                    "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "count",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        92,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gsub(s: string|number, pattern: string|number, repl: string|number|function|table, n?: integer)\n  -> string\n  2. count: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    92,
                    20
                ],
                "name": "gsub",
                "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "start": [
                    92,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                102,
                                21
                            ],
                            "name": "s",
                            "start": [
                                102,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "finish": [
                        102,
                        26
                    ],
                    "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function string.len(s: string|number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    102,
                    19
                ],
                "name": "len",
                "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                112,
                                23
                            ],
                            "name": "s",
                            "start": [
                                112,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "finish": [
                        112,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        112,
                        0
                    ],
                    "type": "function",
                    "view": "function string.lower(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    112,
                    21
                ],
                "name": "lower",
                "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "start": [
                    112,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                124,
                                23
                            ],
                            "name": "s",
                            "start": [
                                124,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                32
                            ],
                            "name": "pattern",
                            "start": [
                                124,
                                25
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                38
                            ],
                            "name": "init",
                            "start": [
                                124,
                                34
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "finish": [
                        124,
                        43
                    ],
                    "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        124,
                        0
                    ],
                    "type": "function",
                    "view": "function string.match(s: string|number, pattern: string|number, init?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    124,
                    21
                ],
                "name": "match",
                "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "start": [
                    124,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                138,
                                24
                            ],
                            "name": "fmt",
                            "start": [
                                138,
                                21
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                138,
                                28
                            ],
                            "name": "v1",
                            "start": [
                                138,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                138,
                                32
                            ],
                            "name": "v2",
                            "start": [
                                138,
                                30
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        },
                        {
                            "finish": [
                                138,
                                37
                            ],
                            "start": [
                                138,
                                34
                            ],
                            "type": "...",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "finish": [
                        138,
                        42
                    ],
                    "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "returns": [
                        {
                            "name": "binary",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        138,
                        0
                    ],
                    "type": "function",
                    "view": "function string.pack(fmt: string, v1: string|number, v2?: string|number, ...string|number)\n  -> binary: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    138,
                    20
                ],
                "name": "pack",
                "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "start": [
                    138,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                28
                            ],
                            "name": "fmt",
                            "start": [
                                149,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "finish": [
                        149,
                        33
                    ],
                    "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function string.packsize(fmt: string)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    149,
                    24
                ],
                "name": "packsize",
                "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                161,
                                21
                            ],
                            "name": "s",
                            "start": [
                                161,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                161,
                                24
                            ],
                            "name": "n",
                            "start": [
                                161,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                161,
                                29
                            ],
                            "name": "sep",
                            "start": [
                                161,
                                26
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        }
                    ],
                    "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "finish": [
                        161,
                        34
                    ],
                    "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "function string.rep(s: string|number, n: integer, sep?: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    161,
                    19
                ],
                "name": "rep",
                "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "start": [
                    161,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                171,
                                25
                            ],
                            "name": "s",
                            "start": [
                                171,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "finish": [
                        171,
                        30
                    ],
                    "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        171,
                        0
                    ],
                    "type": "function",
                    "view": "function string.reverse(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    171,
                    23
                ],
                "name": "reverse",
                "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "start": [
                    171,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                183,
                                21
                            ],
                            "name": "s",
                            "start": [
                                183,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                183,
                                24
                            ],
                            "name": "i",
                            "start": [
                                183,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                183,
                                27
                            ],
                            "name": "j",
                            "start": [
                                183,
                                26
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "finish": [
                        183,
                        32
                    ],
                    "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        183,
                        0
                    ],
                    "type": "function",
                    "view": "function string.sub(s: string|number, i: integer, j?: integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    183,
                    19
                ],
                "name": "sub",
                "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "start": [
                    183,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                196,
                                26
                            ],
                            "name": "fmt",
                            "start": [
                                196,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                29
                            ],
                            "name": "s",
                            "start": [
                                196,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                34
                            ],
                            "name": "pos",
                            "start": [
                                196,
                                31
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "finish": [
                        196,
                        39
                    ],
                    "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        196,
                        0
                    ],
                    "type": "function",
                    "view": "function string.unpack(fmt: string, s: string, pos?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    196,
                    22
                ],
                "name": "unpack",
                "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "start": [
                    196,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                206,
                                23
                            ],
                            "name": "s",
                            "start": [
                                206,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "finish": [
                        206,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        206,
                        0
                    ],
                    "type": "function",
                    "view": "function string.upper(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    206,
                    21
                ],
                "name": "upper",
                "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "start": [
                    206,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string",
        "type": "type",
        "view": "string"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                "extends": [
                    {
                        "finish": [
                            129,
                            31
                        ],
                        "start": [
                            129,
                            26
                        ],
                        "type": "doc.extends.name",
                        "view": "table"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    129,
                    31
                ],
                "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                "start": [
                    129,
                    10
                ],
                "type": "doc.class",
                "view": "string.buffer",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Appends the used bytes of the previously returned write space to the buffer data.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                214,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                214,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "finish": [
                                214,
                                24
                            ],
                            "name": "used",
                            "start": [
                                214,
                                20
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": " Appends the used bytes of the previously returned write space to the buffer data.",
                    "finish": [
                        214,
                        29
                    ],
                    "rawdesc": " Appends the used bytes of the previously returned write space to the buffer data.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        214,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:commit(used: integer)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    214,
                    19
                ],
                "name": "commit",
                "rawdesc": " Appends the used bytes of the previously returned write space to the buffer data.",
                "start": [
                    214,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " De-serializes one object from the buffer.\n\n The returned object may be any of the supported Lua types — even `nil`.\n\n This function may throw an error when fed with malformed or incomplete encoded data.\n\n Leaves any left-over data in the buffer.\n\n Attempting to de-serialize an FFI type will throw an error, if the FFI library is not built-in or has not been loaded, yet.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                279,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                279,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        }
                    ],
                    "desc": " De-serializes one object from the buffer.\n\n The returned object may be any of the supported Lua types — even `nil`.\n\n This function may throw an error when fed with malformed or incomplete encoded data.\n\n Leaves any left-over data in the buffer.\n\n Attempting to de-serialize an FFI type will throw an error, if the FFI library is not built-in or has not been loaded, yet.",
                    "finish": [
                        279,
                        25
                    ],
                    "rawdesc": " De-serializes one object from the buffer.\n\n The returned object may be any of the supported Lua types — even `nil`.\n\n This function may throw an error when fed with malformed or incomplete encoded data.\n\n Leaves any left-over data in the buffer.\n\n Attempting to de-serialize an FFI type will throw an error, if the FFI library is not built-in or has not been loaded, yet.",
                    "returns": [
                        {
                            "name": "obj",
                            "type": "function.return",
                            "view": "string|number|table|nil"
                        }
                    ],
                    "start": [
                        279,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:decode()\n  -> obj: string|number|table|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    279,
                    19
                ],
                "name": "decode",
                "rawdesc": " De-serializes one object from the buffer.\n\n The returned object may be any of the supported Lua types — even `nil`.\n\n This function may throw an error when fed with malformed or incomplete encoded data.\n\n Leaves any left-over data in the buffer.\n\n Attempting to de-serialize an FFI type will throw an error, if the FFI library is not built-in or has not been loaded, yet.",
                "start": [
                    279,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Serializes (encodes) the Lua object to the buffer\n\n This function may throw an error when attempting to serialize unsupported object types, circular references or deeply nested tables.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                265,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                265,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "desc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "finish": [
                                265,
                                23
                            ],
                            "name": "obj",
                            "rawdesc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "start": [
                                265,
                                20
                            ],
                            "type": "local",
                            "view": "string|number|table"
                        }
                    ],
                    "desc": " Serializes (encodes) the Lua object to the buffer\n\n This function may throw an error when attempting to serialize unsupported object types, circular references or deeply nested tables.",
                    "finish": [
                        265,
                        28
                    ],
                    "rawdesc": " Serializes (encodes) the Lua object to the buffer\n\n This function may throw an error when attempting to serialize unsupported object types, circular references or deeply nested tables.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        265,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:encode(obj: string|number|table)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    265,
                    19
                ],
                "name": "encode",
                "rawdesc": " Serializes (encodes) the Lua object to the buffer\n\n This function may throw an error when attempting to serialize unsupported object types, circular references or deeply nested tables.",
                "start": [
                    265,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " The buffer space of the buffer object is freed. The object itself remains intact, empty and may be reused.\n\n Note: you normally don't need to use this method. The garbage collector automatically frees the buffer space, when the buffer object is collected. Use this method, if you need to free the associated memory immediately.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                184,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                184,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        }
                    ],
                    "desc": " The buffer space of the buffer object is freed. The object itself remains intact, empty and may be reused.\n\n Note: you normally don't need to use this method. The garbage collector automatically frees the buffer space, when the buffer object is collected. Use this method, if you need to free the associated memory immediately.",
                    "finish": [
                        184,
                        23
                    ],
                    "rawdesc": " The buffer space of the buffer object is freed. The object itself remains intact, empty and may be reused.\n\n Note: you normally don't need to use this method. The garbage collector automatically frees the buffer space, when the buffer object is collected. Use this method, if you need to free the associated memory immediately.",
                    "start": [
                        184,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:free()"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    184,
                    17
                ],
                "name": "free",
                "rawdesc": " The buffer space of the buffer object is freed. The object itself remains intact, empty and may be reused.\n\n Note: you normally don't need to use this method. The garbage collector automatically frees the buffer space, when the buffer object is collected. Use this method, if you need to free the associated memory immediately.",
                "start": [
                    184,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Consumes the buffer data and returns one or more strings. If called without arguments, the whole buffer data is consumed. If called with a number, up to `len` bytes are consumed. A `nil` argument consumes the remaining buffer space (this only makes sense as the last argument). Multiple arguments consume the buffer data in the given order.\n\n Note: a zero length or no remaining buffer data returns an empty string and not `nil`.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                229,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                229,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "finish": [
                                229,
                                20
                            ],
                            "name": "len",
                            "start": [
                                229,
                                17
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                229,
                                25
                            ],
                            "start": [
                                229,
                                22
                            ],
                            "type": "...",
                            "view": "integer|nil"
                        }
                    ],
                    "desc": " Consumes the buffer data and returns one or more strings. If called without arguments, the whole buffer data is consumed. If called with a number, up to `len` bytes are consumed. A `nil` argument consumes the remaining buffer space (this only makes sense as the last argument). Multiple arguments consume the buffer data in the given order.\n\n Note: a zero length or no remaining buffer data returns an empty string and not `nil`.",
                    "finish": [
                        229,
                        30
                    ],
                    "rawdesc": " Consumes the buffer data and returns one or more strings. If called without arguments, the whole buffer data is consumed. If called with a number, up to `len` bytes are consumed. A `nil` argument consumes the remaining buffer space (this only makes sense as the last argument). Multiple arguments consume the buffer data in the given order.\n\n Note: a zero length or no remaining buffer data returns an empty string and not `nil`.",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        229,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:get(len?: integer, ...integer|nil)\n  -> ...string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    229,
                    16
                ],
                "name": "get",
                "rawdesc": " Consumes the buffer data and returns one or more strings. If called without arguments, the whole buffer data is consumed. If called with a number, up to `len` bytes are consumed. A `nil` argument consumes the remaining buffer space (this only makes sense as the last argument). Multiple arguments consume the buffer data in the given order.\n\n Note: a zero length or no remaining buffer data returns an empty string and not `nil`.",
                "start": [
                    229,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Appends a string str, a number num or any object obj with a `__tostring` metamethod to the buffer. Multiple arguments are appended in the given order.\n\n Appending a buffer to a buffer is possible and short-circuited internally. But it still involves a copy. Better combine the buffer writes to use a single buffer.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                144,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                144,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "desc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "finish": [
                                144,
                                21
                            ],
                            "name": "data",
                            "rawdesc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "start": [
                                144,
                                17
                            ],
                            "type": "local",
                            "view": "string|number|table"
                        },
                        {
                            "desc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "finish": [
                                144,
                                26
                            ],
                            "rawdesc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "start": [
                                144,
                                23
                            ],
                            "type": "...",
                            "view": "string|number|table"
                        }
                    ],
                    "desc": " Appends a string str, a number num or any object obj with a `__tostring` metamethod to the buffer. Multiple arguments are appended in the given order.\n\n Appending a buffer to a buffer is possible and short-circuited internally. But it still involves a copy. Better combine the buffer writes to use a single buffer.",
                    "finish": [
                        144,
                        31
                    ],
                    "rawdesc": " Appends a string str, a number num or any object obj with a `__tostring` metamethod to the buffer. Multiple arguments are appended in the given order.\n\n Appending a buffer to a buffer is possible and short-circuited internally. But it still involves a copy. Better combine the buffer writes to use a single buffer.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        144,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:put(data: string|number|table, ...string|number|table)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    144,
                    16
                ],
                "name": "put",
                "rawdesc": " Appends a string str, a number num or any object obj with a `__tostring` metamethod to the buffer. Multiple arguments are appended in the given order.\n\n Appending a buffer to a buffer is possible and short-circuited internally. But it still involves a copy. Better combine the buffer writes to use a single buffer.",
                "start": [
                    144,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Appends the given len number of bytes from the memory pointed to by the FFI cdata object to the buffer. The object needs to be convertible to a (constant) pointer.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                160,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                160,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "finish": [
                                160,
                                27
                            ],
                            "name": "cdata",
                            "start": [
                                160,
                                22
                            ],
                            "type": "local",
                            "view": "ffi.cdata*"
                        },
                        {
                            "finish": [
                                160,
                                32
                            ],
                            "name": "len",
                            "start": [
                                160,
                                29
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": " Appends the given len number of bytes from the memory pointed to by the FFI cdata object to the buffer. The object needs to be convertible to a (constant) pointer.",
                    "finish": [
                        160,
                        37
                    ],
                    "rawdesc": " Appends the given len number of bytes from the memory pointed to by the FFI cdata object to the buffer. The object needs to be convertible to a (constant) pointer.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        160,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:putcdata(cdata: ffi.cdata*, len: integer)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    160,
                    21
                ],
                "name": "putcdata",
                "rawdesc": " Appends the given len number of bytes from the memory pointed to by the FFI cdata object to the buffer. The object needs to be convertible to a (constant) pointer.",
                "start": [
                    160,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Appends the formatted arguments to the buffer. The format string supports the same options as string.format().",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                152,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                152,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "finish": [
                                152,
                                24
                            ],
                            "name": "format",
                            "start": [
                                152,
                                18
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "desc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "finish": [
                                152,
                                29
                            ],
                            "rawdesc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "start": [
                                152,
                                26
                            ],
                            "type": "...",
                            "view": "string|number|table"
                        }
                    ],
                    "desc": " Appends the formatted arguments to the buffer. The format string supports the same options as string.format().",
                    "finish": [
                        152,
                        34
                    ],
                    "rawdesc": " Appends the formatted arguments to the buffer. The format string supports the same options as string.format().",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        152,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:putf(format: string, ...string|number|table)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    152,
                    17
                ],
                "name": "putf",
                "rawdesc": " Appends the formatted arguments to the buffer. The format string supports the same options as string.format().",
                "start": [
                    152,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Returns an uint8_t * FFI cdata pointer ptr that points to the buffer data. The length of the buffer data in bytes is returned in len.\n\n The returned pointer can be directly passed to C functions that expect a buffer and a length. You can also do bytewise reads (`local x = ptr[i]`) or writes (`ptr[i] = 0x40`) of the buffer data.\n\n In conjunction with the `buf:skip()` method, this allows zero-copy use of C write-style APIs:\n\n ```lua\n repeat\n   local ptr, len = buf:ref()\n   if len == 0 then break end\n   local n = C.write(fd, ptr, len)\n   if n < 0 then error(\"write error\") end\n   buf:skip(n)\n until n >= len\n ```\n\n Unlike Lua strings, buffer data is not implicitly zero-terminated. It's not safe to pass ptr to C functions that expect zero-terminated strings. If you're not using len, then you're doing something wrong.\n\n@*return* `ptr` — an uint8_t * FFI cdata pointer that points to the buffer data.\n\n@*return* `len` — length of the buffer data in bytes",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                258,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                258,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        }
                    ],
                    "desc": " Returns an uint8_t * FFI cdata pointer ptr that points to the buffer data. The length of the buffer data in bytes is returned in len.\n\n The returned pointer can be directly passed to C functions that expect a buffer and a length. You can also do bytewise reads (`local x = ptr[i]`) or writes (`ptr[i] = 0x40`) of the buffer data.\n\n In conjunction with the `buf:skip()` method, this allows zero-copy use of C write-style APIs:\n\n ```lua\n repeat\n   local ptr, len = buf:ref()\n   if len == 0 then break end\n   local n = C.write(fd, ptr, len)\n   if n < 0 then error(\"write error\") end\n   buf:skip(n)\n until n >= len\n ```\n\n Unlike Lua strings, buffer data is not implicitly zero-terminated. It's not safe to pass ptr to C functions that expect zero-terminated strings. If you're not using len, then you're doing something wrong.\n\n@*return* `ptr` — an uint8_t * FFI cdata pointer that points to the buffer data.\n\n@*return* `len` — length of the buffer data in bytes",
                    "finish": [
                        258,
                        22
                    ],
                    "rawdesc": " Returns an uint8_t * FFI cdata pointer ptr that points to the buffer data. The length of the buffer data in bytes is returned in len.\n\n The returned pointer can be directly passed to C functions that expect a buffer and a length. You can also do bytewise reads (`local x = ptr[i]`) or writes (`ptr[i] = 0x40`) of the buffer data.\n\n In conjunction with the `buf:skip()` method, this allows zero-copy use of C write-style APIs:\n\n ```lua\n repeat\n   local ptr, len = buf:ref()\n   if len == 0 then break end\n   local n = C.write(fd, ptr, len)\n   if n < 0 then error(\"write error\") end\n   buf:skip(n)\n until n >= len\n ```\n\n Unlike Lua strings, buffer data is not implicitly zero-terminated. It's not safe to pass ptr to C functions that expect zero-terminated strings. If you're not using len, then you're doing something wrong.",
                    "returns": [
                        {
                            "desc": "an uint8_t * FFI cdata pointer that points to the buffer data.",
                            "name": "ptr",
                            "rawdesc": "an uint8_t * FFI cdata pointer that points to the buffer data.",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        },
                        {
                            "desc": "length of the buffer data in bytes",
                            "name": "len",
                            "rawdesc": "length of the buffer data in bytes",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        258,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:ref()\n  -> ptr: ffi.cdata*\n  2. len: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    258,
                    16
                ],
                "name": "ref",
                "rawdesc": " Returns an uint8_t * FFI cdata pointer ptr that points to the buffer data. The length of the buffer data in bytes is returned in len.\n\n The returned pointer can be directly passed to C functions that expect a buffer and a length. You can also do bytewise reads (`local x = ptr[i]`) or writes (`ptr[i] = 0x40`) of the buffer data.\n\n In conjunction with the `buf:skip()` method, this allows zero-copy use of C write-style APIs:\n\n ```lua\n repeat\n   local ptr, len = buf:ref()\n   if len == 0 then break end\n   local n = C.write(fd, ptr, len)\n   if n < 0 then error(\"write error\") end\n   buf:skip(n)\n until n >= len\n ```\n\n Unlike Lua strings, buffer data is not implicitly zero-terminated. It's not safe to pass ptr to C functions that expect zero-terminated strings. If you're not using len, then you're doing something wrong.",
                "start": [
                    258,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " The reserve method reserves at least size bytes of write space in the buffer. It returns an uint8_t * FFI cdata pointer ptr that points to this space.\n\n The available length in bytes is returned in len. This is at least size bytes, but may be more to facilitate efficient buffer growth. You can either make use of the additional space or ignore len and only use size bytes.\n\n This, along with `buf:commit()` allow zero-copy use of C read-style APIs:\n\n ```lua\n local MIN_SIZE = 65536\n repeat\n   local ptr, len = buf:reserve(MIN_SIZE)\n   local n = C.read(fd, ptr, len)\n   if n == 0 then break end -- EOF.\n   if n < 0 then error(\"read error\") end\n   buf:commit(n)\n until false\n ```\n\n The reserved write space is not initialized. At least the used bytes must be written to before calling the commit method. There's no need to call the commit method, if nothing is added to the buffer (e.g. on error).\n\n@*return* `ptr` — an uint8_t * FFI cdata pointer that points to this space\n\n@*return* `len` — available length (bytes)",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                208,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                208,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "finish": [
                                208,
                                25
                            ],
                            "name": "size",
                            "start": [
                                208,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": " The reserve method reserves at least size bytes of write space in the buffer. It returns an uint8_t * FFI cdata pointer ptr that points to this space.\n\n The available length in bytes is returned in len. This is at least size bytes, but may be more to facilitate efficient buffer growth. You can either make use of the additional space or ignore len and only use size bytes.\n\n This, along with `buf:commit()` allow zero-copy use of C read-style APIs:\n\n ```lua\n local MIN_SIZE = 65536\n repeat\n   local ptr, len = buf:reserve(MIN_SIZE)\n   local n = C.read(fd, ptr, len)\n   if n == 0 then break end -- EOF.\n   if n < 0 then error(\"read error\") end\n   buf:commit(n)\n until false\n ```\n\n The reserved write space is not initialized. At least the used bytes must be written to before calling the commit method. There's no need to call the commit method, if nothing is added to the buffer (e.g. on error).\n\n@*return* `ptr` — an uint8_t * FFI cdata pointer that points to this space\n\n@*return* `len` — available length (bytes)",
                    "finish": [
                        208,
                        30
                    ],
                    "rawdesc": " The reserve method reserves at least size bytes of write space in the buffer. It returns an uint8_t * FFI cdata pointer ptr that points to this space.\n\n The available length in bytes is returned in len. This is at least size bytes, but may be more to facilitate efficient buffer growth. You can either make use of the additional space or ignore len and only use size bytes.\n\n This, along with `buf:commit()` allow zero-copy use of C read-style APIs:\n\n ```lua\n local MIN_SIZE = 65536\n repeat\n   local ptr, len = buf:reserve(MIN_SIZE)\n   local n = C.read(fd, ptr, len)\n   if n == 0 then break end -- EOF.\n   if n < 0 then error(\"read error\") end\n   buf:commit(n)\n until false\n ```\n\n The reserved write space is not initialized. At least the used bytes must be written to before calling the commit method. There's no need to call the commit method, if nothing is added to the buffer (e.g. on error).",
                    "returns": [
                        {
                            "desc": "an uint8_t * FFI cdata pointer that points to this space",
                            "name": "ptr",
                            "rawdesc": "an uint8_t * FFI cdata pointer that points to this space",
                            "type": "function.return",
                            "view": "ffi.cdata*"
                        },
                        {
                            "desc": "available length (bytes)",
                            "name": "len",
                            "rawdesc": "available length (bytes)",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        208,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:reserve(size: integer)\n  -> ptr: ffi.cdata*\n  2. len: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    208,
                    20
                ],
                "name": "reserve",
                "rawdesc": " The reserve method reserves at least size bytes of write space in the buffer. It returns an uint8_t * FFI cdata pointer ptr that points to this space.\n\n The available length in bytes is returned in len. This is at least size bytes, but may be more to facilitate efficient buffer growth. You can either make use of the additional space or ignore len and only use size bytes.\n\n This, along with `buf:commit()` allow zero-copy use of C read-style APIs:\n\n ```lua\n local MIN_SIZE = 65536\n repeat\n   local ptr, len = buf:reserve(MIN_SIZE)\n   local n = C.read(fd, ptr, len)\n   if n == 0 then break end -- EOF.\n   if n < 0 then error(\"read error\") end\n   buf:commit(n)\n until false\n ```\n\n The reserved write space is not initialized. At least the used bytes must be written to before calling the commit method. There's no need to call the commit method, if nothing is added to the buffer (e.g. on error).",
                "start": [
                    208,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Reset (empty) the buffer. The allocated buffer space is not freed and may be reused.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                178,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                178,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        }
                    ],
                    "desc": " Reset (empty) the buffer. The allocated buffer space is not freed and may be reused.",
                    "finish": [
                        178,
                        24
                    ],
                    "rawdesc": " Reset (empty) the buffer. The allocated buffer space is not freed and may be reused.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        178,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:reset()\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    178,
                    18
                ],
                "name": "reset",
                "rawdesc": " Reset (empty) the buffer. The allocated buffer space is not freed and may be reused.",
                "start": [
                    178,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " This method allows zero-copy consumption of a string or an FFI cdata object as a buffer. It stores a reference to the passed string str or the FFI cdata object in the buffer. Any buffer space originally allocated is freed. This is not an append operation, unlike the `buf:put*()` methods.\n\n After calling this method, the buffer behaves as if `buf:free():put(str)` or `buf:free():put(cdata, len)` had been called. However, the data is only referenced and not copied, as long as the buffer is only consumed.\n\n In case the buffer is written to later on, the referenced data is copied and the object reference is removed (copy-on-write semantics).\n\n The stored reference is an anchor for the garbage collector and keeps the originally passed string or FFI cdata object alive.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                174,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                174,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "desc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "finish": [
                                174,
                                20
                            ],
                            "name": "str",
                            "rawdesc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                            "start": [
                                174,
                                17
                            ],
                            "type": "local",
                            "view": "string|number|table"
                        }
                    ],
                    "desc": " This method allows zero-copy consumption of a string or an FFI cdata object as a buffer. It stores a reference to the passed string str or the FFI cdata object in the buffer. Any buffer space originally allocated is freed. This is not an append operation, unlike the `buf:put*()` methods.\n\n After calling this method, the buffer behaves as if `buf:free():put(str)` or `buf:free():put(cdata, len)` had been called. However, the data is only referenced and not copied, as long as the buffer is only consumed.\n\n In case the buffer is written to later on, the referenced data is copied and the object reference is removed (copy-on-write semantics).\n\n The stored reference is an anchor for the garbage collector and keeps the originally passed string or FFI cdata object alive.",
                    "finish": [
                        174,
                        25
                    ],
                    "rawdesc": " This method allows zero-copy consumption of a string or an FFI cdata object as a buffer. It stores a reference to the passed string str or the FFI cdata object in the buffer. Any buffer space originally allocated is freed. This is not an append operation, unlike the `buf:put*()` methods.\n\n After calling this method, the buffer behaves as if `buf:free():put(str)` or `buf:free():put(cdata, len)` had been called. However, the data is only referenced and not copied, as long as the buffer is only consumed.\n\n In case the buffer is written to later on, the referenced data is copied and the object reference is removed (copy-on-write semantics).\n\n The stored reference is an anchor for the garbage collector and keeps the originally passed string or FFI cdata object alive.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        174,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:set(str: string|number|table)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    174,
                    16
                ],
                "name": "set",
                "rawdesc": " This method allows zero-copy consumption of a string or an FFI cdata object as a buffer. It stores a reference to the passed string str or the FFI cdata object in the buffer. Any buffer space originally allocated is freed. This is not an append operation, unlike the `buf:put*()` methods.\n\n After calling this method, the buffer behaves as if `buf:free():put(str)` or `buf:free():put(cdata, len)` had been called. However, the data is only referenced and not copied, as long as the buffer is only consumed.\n\n In case the buffer is written to later on, the referenced data is copied and the object reference is removed (copy-on-write semantics).\n\n The stored reference is an anchor for the garbage collector and keeps the originally passed string or FFI cdata object alive.",
                "start": [
                    174,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Skips (consumes) len bytes from the buffer up to the current length of the buffer data.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                220,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                220,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        },
                        {
                            "finish": [
                                220,
                                21
                            ],
                            "name": "len",
                            "start": [
                                220,
                                18
                            ],
                            "type": "local",
                            "view": "integer"
                        }
                    ],
                    "desc": " Skips (consumes) len bytes from the buffer up to the current length of the buffer data.",
                    "finish": [
                        220,
                        26
                    ],
                    "rawdesc": " Skips (consumes) len bytes from the buffer up to the current length of the buffer data.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string.buffer"
                        }
                    ],
                    "start": [
                        220,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:skip(len: integer)\n  -> string.buffer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    220,
                    17
                ],
                "name": "skip",
                "rawdesc": " Skips (consumes) len bytes from the buffer up to the current length of the buffer data.",
                "start": [
                    220,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": " Creates a string from the buffer data, but doesn't consume it. The buffer remains unchanged.\n\n Buffer objects also define a `__tostring metamethod`. This means buffers can be passed to the global `tostring()` function and many other functions that accept this in place of strings. The important internal uses in functions like `io.write()` are short-circuited to avoid the creation of an intermediate string object.",
                "extends": {
                    "args": [
                        {
                            "desc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "finish": [
                                235,
                                8
                            ],
                            "name": "self",
                            "rawdesc": " A buffer object is a garbage-collected Lua object. After creation with `buffer.new()`, it can (and should) be reused for many operations. When the last reference to a buffer object is gone, it will eventually be freed by the garbage collector, along with the allocated buffer space.\n\n Buffers operate like a FIFO (first-in first-out) data structure. Data can be appended (written) to the end of the buffer and consumed (read) from the front of the buffer. These operations may be freely mixed.\n\n The buffer space that holds the characters is managed automatically — it grows as needed and already consumed space is recycled. Use `buffer.new(size)` and `buf:free()`, if you need more control.\n\n The maximum size of a single buffer is the same as the maximum size of a Lua string, which is slightly below two gigabytes. For huge data sizes, neither strings nor buffers are the right data structure — use the FFI library to directly map memory or files up to the virtual memory limit of your OS.\n",
                            "start": [
                                235,
                                8
                            ],
                            "type": "self",
                            "view": "string.buffer"
                        }
                    ],
                    "desc": " Creates a string from the buffer data, but doesn't consume it. The buffer remains unchanged.\n\n Buffer objects also define a `__tostring metamethod`. This means buffers can be passed to the global `tostring()` function and many other functions that accept this in place of strings. The important internal uses in functions like `io.write()` are short-circuited to avoid the creation of an intermediate string object.",
                    "finish": [
                        235,
                        27
                    ],
                    "rawdesc": " Creates a string from the buffer data, but doesn't consume it. The buffer remains unchanged.\n\n Buffer objects also define a `__tostring metamethod`. This means buffers can be passed to the global `tostring()` function and many other functions that accept this in place of strings. The important internal uses in functions like `io.write()` are short-circuited to avoid the creation of an intermediate string object.",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        235,
                        0
                    ],
                    "type": "function",
                    "view": "(method) string.buffer:tostring()\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    235,
                    21
                ],
                "name": "tostring",
                "rawdesc": " Creates a string from the buffer data, but doesn't consume it. The buffer remains unchanged.\n\n Buffer objects also define a `__tostring metamethod`. This means buffers can be passed to the global `tostring()` function and many other functions that accept this in place of strings. The important internal uses in functions like `io.write()` are short-circuited to avoid the creation of an intermediate string object.",
                "start": [
                    235,
                    9
                ],
                "type": "setmethod",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.buffer",
        "type": "type",
        "view": "string.buffer"
    },
    {
        "defines": [
            {
                "desc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                "finish": [
                    134,
                    48
                ],
                "rawdesc": " A string, number, or any object obj with a __tostring metamethod to the buffer.\n",
                "start": [
                    134,
                    10
                ],
                "type": "doc.alias",
                "view": "string|number|table"
            }
        ],
        "fields": [],
        "name": "string.buffer.data",
        "type": "type",
        "view": "string.buffer.data"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": " Serialization Options\n\n The options table passed to buffer.new() may contain the following members (all optional):\n\n * `dict` is a Lua table holding a dictionary of strings that commonly occur as table keys of objects you are serializing. These keys are compactly encoded as indexes during serialization. A well chosen dictionary saves space and improves serialization performance.\n\n * `metatable` is a Lua table holding a dictionary of metatables for the table objects you are serializing.\n\n dict needs to be an array of strings and metatable needs to be an array of tables. Both starting at index 1 and without holes (no nil inbetween). The tables are anchored in the buffer object and internally modified into a two-way index (don't do this yourself, just pass a plain array). The tables must not be modified after they have been passed to buffer.new().\n\n The dict and metatable tables used by the encoder and decoder must be the same. Put the most common entries at the front. Extend at the end to ensure backwards-compatibility — older encodings can then still be read. You may also set some indexes to false to explicitly drop backwards-compatibility. Old encodings that use these indexes will throw an error when decoded.\n\n Metatables that are not found in the metatable dictionary are ignored when encoding. Decoding returns a table with a nil metatable.\n\n Note: parsing and preparation of the options table is somewhat expensive. Create a buffer object only once and recycle it for multiple uses. Avoid mixing encoder and decoder buffers, since the buf:set() method frees the already allocated buffer space:\n\n ```lua\n local options = {\n   dict = { \"commonly\", \"used\", \"string\", \"keys\" },\n }\n local buf_enc = buffer.new(options)\n local buf_dec = buffer.new(options)\n\n local function encode(obj)\n   return buf_enc:reset():encode(obj):get()\n end\n\n local function decode(str)\n   return buf_dec:set(str):decode()\n end\n ```",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    347,
                    42
                ],
                "rawdesc": " Serialization Options\n\n The options table passed to buffer.new() may contain the following members (all optional):\n\n * `dict` is a Lua table holding a dictionary of strings that commonly occur as table keys of objects you are serializing. These keys are compactly encoded as indexes during serialization. A well chosen dictionary saves space and improves serialization performance.\n\n * `metatable` is a Lua table holding a dictionary of metatables for the table objects you are serializing.\n\n dict needs to be an array of strings and metatable needs to be an array of tables. Both starting at index 1 and without holes (no nil inbetween). The tables are anchored in the buffer object and internally modified into a two-way index (don't do this yourself, just pass a plain array). The tables must not be modified after they have been passed to buffer.new().\n\n The dict and metatable tables used by the encoder and decoder must be the same. Put the most common entries at the front. Extend at the end to ensure backwards-compatibility — older encodings can then still be read. You may also set some indexes to false to explicitly drop backwards-compatibility. Old encodings that use these indexes will throw an error when decoded.\n\n Metatables that are not found in the metatable dictionary are ignored when encoding. Decoding returns a table with a nil metatable.\n\n Note: parsing and preparation of the options table is somewhat expensive. Create a buffer object only once and recycle it for multiple uses. Avoid mixing encoder and decoder buffers, since the buf:set() method frees the already allocated buffer space:\n\n ```lua\n local options = {\n   dict = { \"commonly\", \"used\", \"string\", \"keys\" },\n }\n local buf_enc = buffer.new(options)\n local buf_dec = buffer.new(options)\n\n local function encode(obj)\n   return buf_enc:reset():encode(obj):get()\n end\n\n local function decode(str)\n   return buf_dec:set(str):decode()\n end\n ```",
                "start": [
                    347,
                    10
                ],
                "type": "doc.class",
                "view": "string.buffer.serialization.opts",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        348,
                        23
                    ],
                    "start": [
                        348,
                        15
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                348,
                                23
                            ],
                            "start": [
                                348,
                                15
                            ],
                            "type": "doc.type.array",
                            "view": "string[]"
                        }
                    ],
                    "view": "string[]"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    348,
                    23
                ],
                "name": "dict",
                "start": [
                    348,
                    10
                ],
                "type": "doc.field",
                "view": "string[]",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "finish": [
                        349,
                        27
                    ],
                    "start": [
                        349,
                        20
                    ],
                    "type": "doc.type",
                    "types": [
                        {
                            "finish": [
                                349,
                                27
                            ],
                            "start": [
                                349,
                                20
                            ],
                            "type": "doc.type.array",
                            "view": "table[]"
                        }
                    ],
                    "view": "table[]"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string/buffer.lua",
                "finish": [
                    349,
                    27
                ],
                "name": "metatable",
                "start": [
                    349,
                    10
                ],
                "type": "doc.field",
                "view": "table[]",
                "visible": "public"
            }
        ],
        "name": "string.buffer.serialization.opts",
        "type": "type",
        "view": "string.buffer.serialization.opts"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                20,
                                22
                            ],
                            "name": "s",
                            "start": [
                                20,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                20,
                                25
                            ],
                            "name": "i",
                            "start": [
                                20,
                                24
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                20,
                                28
                            ],
                            "name": "j",
                            "start": [
                                20,
                                27
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "finish": [
                        20,
                        33
                    ],
                    "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function string.byte(s: string|number, i?: integer, j?: integer)\n  -> ...integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    20,
                    20
                ],
                "name": "byte",
                "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.byte",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                31,
                                25
                            ],
                            "name": "byte",
                            "start": [
                                31,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                31,
                                30
                            ],
                            "start": [
                                31,
                                27
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "finish": [
                        31,
                        35
                    ],
                    "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function string.char(byte: integer, ...integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    31,
                    20
                ],
                "name": "char",
                "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.char",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                42,
                                22
                            ],
                            "name": "f",
                            "start": [
                                42,
                                21
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                42,
                                29
                            ],
                            "name": "strip",
                            "start": [
                                42,
                                24
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "finish": [
                        42,
                        34
                    ],
                    "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function string.dump(f: fun(...any):...unknown, strip?: boolean)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    42,
                    20
                ],
                "name": "dump",
                "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.dump",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                57,
                                22
                            ],
                            "name": "s",
                            "start": [
                                57,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                57,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                37
                            ],
                            "name": "init",
                            "start": [
                                57,
                                33
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                57,
                                44
                            ],
                            "name": "plain",
                            "start": [
                                57,
                                39
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                    "finish": [
                        57,
                        49
                    ],
                    "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                    "returns": [
                        {
                            "name": "start",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "name": "end",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "desc": "captured",
                            "name": "...",
                            "rawdesc": "captured",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        57,
                        0
                    ],
                    "type": "function",
                    "view": "function string.find(s: string|number, pattern: string|number, init?: integer, plain?: boolean)\n  -> start: integer|nil\n  2. end: integer|nil\n  3. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    57,
                    20
                ],
                "name": "find",
                "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                "start": [
                    57,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.find",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                68,
                                24
                            ],
                            "name": "s",
                            "start": [
                                68,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                68,
                                29
                            ],
                            "start": [
                                68,
                                26
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "finish": [
                        68,
                        34
                    ],
                    "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function string.format(s: string|number, ...any)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    68,
                    22
                ],
                "name": "format",
                "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.format",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                79,
                                24
                            ],
                            "name": "s",
                            "start": [
                                79,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                79,
                                33
                            ],
                            "name": "pattern",
                            "start": [
                                79,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "finish": [
                        79,
                        38
                    ],
                    "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():string, ...unknown"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gmatch(s: string|number, pattern: string|number)\n  -> fun():string, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    79,
                    22
                ],
                "name": "gmatch",
                "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.gmatch",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                92,
                                22
                            ],
                            "name": "s",
                            "start": [
                                92,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                92,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                37
                            ],
                            "name": "repl",
                            "start": [
                                92,
                                33
                            ],
                            "type": "local",
                            "view": "string|number|function|table"
                        },
                        {
                            "finish": [
                                92,
                                40
                            ],
                            "name": "n",
                            "start": [
                                92,
                                39
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "finish": [
                        92,
                        45
                    ],
                    "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "count",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        92,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gsub(s: string|number, pattern: string|number, repl: string|number|function|table, n?: integer)\n  -> string\n  2. count: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    92,
                    20
                ],
                "name": "gsub",
                "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "start": [
                    92,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.gsub",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                102,
                                21
                            ],
                            "name": "s",
                            "start": [
                                102,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "finish": [
                        102,
                        26
                    ],
                    "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function string.len(s: string|number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    102,
                    19
                ],
                "name": "len",
                "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.len",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                112,
                                23
                            ],
                            "name": "s",
                            "start": [
                                112,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "finish": [
                        112,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        112,
                        0
                    ],
                    "type": "function",
                    "view": "function string.lower(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    112,
                    21
                ],
                "name": "lower",
                "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "start": [
                    112,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.lower",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                124,
                                23
                            ],
                            "name": "s",
                            "start": [
                                124,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                32
                            ],
                            "name": "pattern",
                            "start": [
                                124,
                                25
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                38
                            ],
                            "name": "init",
                            "start": [
                                124,
                                34
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "finish": [
                        124,
                        43
                    ],
                    "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        124,
                        0
                    ],
                    "type": "function",
                    "view": "function string.match(s: string|number, pattern: string|number, init?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    124,
                    21
                ],
                "name": "match",
                "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "start": [
                    124,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.match",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                138,
                                24
                            ],
                            "name": "fmt",
                            "start": [
                                138,
                                21
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                138,
                                28
                            ],
                            "name": "v1",
                            "start": [
                                138,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                138,
                                32
                            ],
                            "name": "v2",
                            "start": [
                                138,
                                30
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        },
                        {
                            "finish": [
                                138,
                                37
                            ],
                            "start": [
                                138,
                                34
                            ],
                            "type": "...",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "finish": [
                        138,
                        42
                    ],
                    "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "returns": [
                        {
                            "name": "binary",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        138,
                        0
                    ],
                    "type": "function",
                    "view": "function string.pack(fmt: string, v1: string|number, v2?: string|number, ...string|number)\n  -> binary: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    138,
                    20
                ],
                "name": "pack",
                "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "start": [
                    138,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.pack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                28
                            ],
                            "name": "fmt",
                            "start": [
                                149,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "finish": [
                        149,
                        33
                    ],
                    "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function string.packsize(fmt: string)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    149,
                    24
                ],
                "name": "packsize",
                "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.packsize",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                161,
                                21
                            ],
                            "name": "s",
                            "start": [
                                161,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                161,
                                24
                            ],
                            "name": "n",
                            "start": [
                                161,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                161,
                                29
                            ],
                            "name": "sep",
                            "start": [
                                161,
                                26
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        }
                    ],
                    "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "finish": [
                        161,
                        34
                    ],
                    "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "function string.rep(s: string|number, n: integer, sep?: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    161,
                    19
                ],
                "name": "rep",
                "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "start": [
                    161,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.rep",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                171,
                                25
                            ],
                            "name": "s",
                            "start": [
                                171,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "finish": [
                        171,
                        30
                    ],
                    "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        171,
                        0
                    ],
                    "type": "function",
                    "view": "function string.reverse(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    171,
                    23
                ],
                "name": "reverse",
                "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "start": [
                    171,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.reverse",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                183,
                                21
                            ],
                            "name": "s",
                            "start": [
                                183,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                183,
                                24
                            ],
                            "name": "i",
                            "start": [
                                183,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                183,
                                27
                            ],
                            "name": "j",
                            "start": [
                                183,
                                26
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "finish": [
                        183,
                        32
                    ],
                    "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        183,
                        0
                    ],
                    "type": "function",
                    "view": "function string.sub(s: string|number, i: integer, j?: integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    183,
                    19
                ],
                "name": "sub",
                "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "start": [
                    183,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.sub",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                196,
                                26
                            ],
                            "name": "fmt",
                            "start": [
                                196,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                29
                            ],
                            "name": "s",
                            "start": [
                                196,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                34
                            ],
                            "name": "pos",
                            "start": [
                                196,
                                31
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "finish": [
                        196,
                        39
                    ],
                    "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        196,
                        0
                    ],
                    "type": "function",
                    "view": "function string.unpack(fmt: string, s: string, pos?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    196,
                    22
                ],
                "name": "unpack",
                "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "start": [
                    196,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.unpack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                206,
                                23
                            ],
                            "name": "s",
                            "start": [
                                206,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "finish": [
                        206,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        206,
                        0
                    ],
                    "type": "function",
                    "view": "function string.upper(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    206,
                    21
                ],
                "name": "upper",
                "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "start": [
                    206,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "string.upper",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    7,
                    19
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "stringlib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                20,
                                22
                            ],
                            "name": "s",
                            "start": [
                                20,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                20,
                                25
                            ],
                            "name": "i",
                            "start": [
                                20,
                                24
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                20,
                                28
                            ],
                            "name": "j",
                            "start": [
                                20,
                                27
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "finish": [
                        20,
                        33
                    ],
                    "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        20,
                        0
                    ],
                    "type": "function",
                    "view": "function string.byte(s: string|number, i?: integer, j?: integer)\n  -> ...integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    20,
                    20
                ],
                "name": "byte",
                "rawdesc": "\nReturns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.byte\"])",
                "start": [
                    20,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                31,
                                25
                            ],
                            "name": "byte",
                            "start": [
                                31,
                                21
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                31,
                                30
                            ],
                            "start": [
                                31,
                                27
                            ],
                            "type": "...",
                            "view": "integer"
                        }
                    ],
                    "desc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "finish": [
                        31,
                        35
                    ],
                    "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        31,
                        0
                    ],
                    "type": "function",
                    "view": "function string.char(byte: integer, ...integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    31,
                    20
                ],
                "name": "char",
                "rawdesc": "\nReturns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.char\"])",
                "start": [
                    31,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                42,
                                22
                            ],
                            "name": "f",
                            "start": [
                                42,
                                21
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                42,
                                29
                            ],
                            "name": "strip",
                            "start": [
                                42,
                                24
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "finish": [
                        42,
                        34
                    ],
                    "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        42,
                        0
                    ],
                    "type": "function",
                    "view": "function string.dump(f: fun(...any):...unknown, strip?: boolean)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    42,
                    20
                ],
                "name": "dump",
                "rawdesc": "\nReturns a string containing a binary representation (a *binary chunk*) of the given function.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.dump\"])",
                "start": [
                    42,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                57,
                                22
                            ],
                            "name": "s",
                            "start": [
                                57,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                57,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                57,
                                37
                            ],
                            "name": "init",
                            "start": [
                                57,
                                33
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                57,
                                44
                            ],
                            "name": "plain",
                            "start": [
                                57,
                                39
                            ],
                            "type": "local",
                            "view": "boolean?"
                        }
                    ],
                    "desc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])\n\n@*return* `start`\n\n@*return* `end`\n\n@*return* `...` — captured",
                    "finish": [
                        57,
                        49
                    ],
                    "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                    "returns": [
                        {
                            "name": "start",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "name": "end",
                            "type": "function.return",
                            "view": "integer|nil"
                        },
                        {
                            "desc": "captured",
                            "name": "...",
                            "rawdesc": "captured",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        57,
                        0
                    ],
                    "type": "function",
                    "view": "function string.find(s: string|number, pattern: string|number, init?: integer, plain?: boolean)\n  -> start: integer|nil\n  2. end: integer|nil\n  3. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    57,
                    20
                ],
                "name": "find",
                "rawdesc": "\nMiss locale <string.find>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.find\"])",
                "start": [
                    57,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                68,
                                24
                            ],
                            "name": "s",
                            "start": [
                                68,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                68,
                                29
                            ],
                            "start": [
                                68,
                                26
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "finish": [
                        68,
                        34
                    ],
                    "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        68,
                        0
                    ],
                    "type": "function",
                    "view": "function string.format(s: string|number, ...any)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    68,
                    22
                ],
                "name": "format",
                "rawdesc": "\nReturns a formatted version of its variable number of arguments following the description given in its first argument.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.format\"])",
                "start": [
                    68,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                79,
                                24
                            ],
                            "name": "s",
                            "start": [
                                79,
                                23
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                79,
                                33
                            ],
                            "name": "pattern",
                            "start": [
                                79,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "finish": [
                        79,
                        38
                    ],
                    "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "fun():string, ...unknown"
                        }
                    ],
                    "start": [
                        79,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gmatch(s: string|number, pattern: string|number)\n  -> fun():string, ...unknown"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    79,
                    22
                ],
                "name": "gmatch",
                "rawdesc": "\nMiss locale <string.gmatch>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gmatch\"])",
                "start": [
                    79,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                92,
                                22
                            ],
                            "name": "s",
                            "start": [
                                92,
                                21
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                31
                            ],
                            "name": "pattern",
                            "start": [
                                92,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                92,
                                37
                            ],
                            "name": "repl",
                            "start": [
                                92,
                                33
                            ],
                            "type": "local",
                            "view": "string|number|function|table"
                        },
                        {
                            "finish": [
                                92,
                                40
                            ],
                            "name": "n",
                            "start": [
                                92,
                                39
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "finish": [
                        92,
                        45
                    ],
                    "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        },
                        {
                            "name": "count",
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        92,
                        0
                    ],
                    "type": "function",
                    "view": "function string.gsub(s: string|number, pattern: string|number, repl: string|number|function|table, n?: integer)\n  -> string\n  2. count: integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    92,
                    20
                ],
                "name": "gsub",
                "rawdesc": "\nMiss locale <string.gsub>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.gsub\"])",
                "start": [
                    92,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                102,
                                21
                            ],
                            "name": "s",
                            "start": [
                                102,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "finish": [
                        102,
                        26
                    ],
                    "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        102,
                        0
                    ],
                    "type": "function",
                    "view": "function string.len(s: string|number)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    102,
                    19
                ],
                "name": "len",
                "rawdesc": "\nReturns its length.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.len\"])",
                "start": [
                    102,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                112,
                                23
                            ],
                            "name": "s",
                            "start": [
                                112,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "finish": [
                        112,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        112,
                        0
                    ],
                    "type": "function",
                    "view": "function string.lower(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    112,
                    21
                ],
                "name": "lower",
                "rawdesc": "\nReturns a copy of this string with all uppercase letters changed to lowercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.lower\"])",
                "start": [
                    112,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                124,
                                23
                            ],
                            "name": "s",
                            "start": [
                                124,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                32
                            ],
                            "name": "pattern",
                            "start": [
                                124,
                                25
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                124,
                                38
                            ],
                            "name": "init",
                            "start": [
                                124,
                                34
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "finish": [
                        124,
                        43
                    ],
                    "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        124,
                        0
                    ],
                    "type": "function",
                    "view": "function string.match(s: string|number, pattern: string|number, init?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    124,
                    21
                ],
                "name": "match",
                "rawdesc": "\nMiss locale <string.match>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.match\"])",
                "start": [
                    124,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                138,
                                24
                            ],
                            "name": "fmt",
                            "start": [
                                138,
                                21
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                138,
                                28
                            ],
                            "name": "v1",
                            "start": [
                                138,
                                26
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                138,
                                32
                            ],
                            "name": "v2",
                            "start": [
                                138,
                                30
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        },
                        {
                            "finish": [
                                138,
                                37
                            ],
                            "start": [
                                138,
                                34
                            ],
                            "type": "...",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "finish": [
                        138,
                        42
                    ],
                    "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                    "returns": [
                        {
                            "name": "binary",
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        138,
                        0
                    ],
                    "type": "function",
                    "view": "function string.pack(fmt: string, v1: string|number, v2?: string|number, ...string|number)\n  -> binary: string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    138,
                    20
                ],
                "name": "pack",
                "rawdesc": "\nMiss locale <string.pack>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.pack\"])",
                "start": [
                    138,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                28
                            ],
                            "name": "fmt",
                            "start": [
                                149,
                                25
                            ],
                            "type": "local",
                            "view": "string"
                        }
                    ],
                    "desc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "finish": [
                        149,
                        33
                    ],
                    "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function string.packsize(fmt: string)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    149,
                    24
                ],
                "name": "packsize",
                "rawdesc": "\nMiss locale <string.packsize>\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.packsize\"])",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                161,
                                21
                            ],
                            "name": "s",
                            "start": [
                                161,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                161,
                                24
                            ],
                            "name": "n",
                            "start": [
                                161,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                161,
                                29
                            ],
                            "name": "sep",
                            "start": [
                                161,
                                26
                            ],
                            "type": "local",
                            "view": "(string|number)?"
                        }
                    ],
                    "desc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "finish": [
                        161,
                        34
                    ],
                    "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        161,
                        0
                    ],
                    "type": "function",
                    "view": "function string.rep(s: string|number, n: integer, sep?: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    161,
                    19
                ],
                "name": "rep",
                "rawdesc": "\nReturns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.rep\"])",
                "start": [
                    161,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                171,
                                25
                            ],
                            "name": "s",
                            "start": [
                                171,
                                24
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "finish": [
                        171,
                        30
                    ],
                    "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        171,
                        0
                    ],
                    "type": "function",
                    "view": "function string.reverse(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    171,
                    23
                ],
                "name": "reverse",
                "rawdesc": "\nReturns a string that is the string `s` reversed.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.reverse\"])",
                "start": [
                    171,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                183,
                                21
                            ],
                            "name": "s",
                            "start": [
                                183,
                                20
                            ],
                            "type": "local",
                            "view": "string|number"
                        },
                        {
                            "finish": [
                                183,
                                24
                            ],
                            "name": "i",
                            "start": [
                                183,
                                23
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                183,
                                27
                            ],
                            "name": "j",
                            "start": [
                                183,
                                26
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "finish": [
                        183,
                        32
                    ],
                    "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        183,
                        0
                    ],
                    "type": "function",
                    "view": "function string.sub(s: string|number, i: integer, j?: integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    183,
                    19
                ],
                "name": "sub",
                "rawdesc": "\nReturns the substring of the string that starts at `i` and continues until `j`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.sub\"])",
                "start": [
                    183,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                196,
                                26
                            ],
                            "name": "fmt",
                            "start": [
                                196,
                                23
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                29
                            ],
                            "name": "s",
                            "start": [
                                196,
                                28
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                196,
                                34
                            ],
                            "name": "pos",
                            "start": [
                                196,
                                31
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "finish": [
                        196,
                        39
                    ],
                    "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                    "returns": [
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        196,
                        0
                    ],
                    "type": "function",
                    "view": "function string.unpack(fmt: string, s: string, pos?: integer)\n  -> ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    196,
                    22
                ],
                "name": "unpack",
                "rawdesc": "\nReturns the values packed in string according to the format string `fmt` (see [§6.4.2](command:extension.lua.doc?[\"en-us/51/manual.html/6.4.2\"])) .\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.unpack\"])",
                "start": [
                    196,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                206,
                                23
                            ],
                            "name": "s",
                            "start": [
                                206,
                                22
                            ],
                            "type": "local",
                            "view": "string|number"
                        }
                    ],
                    "desc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "finish": [
                        206,
                        28
                    ],
                    "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        206,
                        0
                    ],
                    "type": "function",
                    "view": "function string.upper(s: string|number)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/string.lua",
                "finish": [
                    206,
                    21
                ],
                "name": "upper",
                "rawdesc": "\nReturns a copy of this string with all lowercase letters changed to uppercase.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-string.upper\"])",
                "start": [
                    206,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "stringlib",
        "type": "type",
        "view": "stringlib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "fields": [
                            {
                                "finish": [
                                    11,
                                    31
                                ],
                                "name": {
                                    "finish": [
                                        11,
                                        27
                                    ],
                                    "start": [
                                        11,
                                        26
                                    ],
                                    "type": "doc.type",
                                    "types": [
                                        {
                                            "finish": [
                                                11,
                                                27
                                            ],
                                            "start": [
                                                11,
                                                26
                                            ],
                                            "type": "doc.generic.name",
                                            "view": "<K>"
                                        }
                                    ],
                                    "view": "<K>"
                                },
                                "start": [
                                    11,
                                    26
                                ],
                                "type": "doc.type.field",
                                "view": "<V>"
                            }
                        ],
                        "finish": [
                            11,
                            33
                        ],
                        "start": [
                            11,
                            23
                        ],
                        "type": "doc.type.table",
                        "view": "{ [<K>]: <V> }"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    11,
                    33
                ],
                "start": [
                    11,
                    10
                ],
                "type": "doc.class",
                "view": "table",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "table",
        "type": "type",
        "view": "table"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table\"])\n",
                "extends": {
                    "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table\"])\n",
                    "finish": [
                        8,
                        10
                    ],
                    "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table\"])\n",
                    "start": [
                        8,
                        8
                    ],
                    "type": "table",
                    "view": "tablelib"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    8,
                    5
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table\"])\n",
                "start": [
                    8,
                    0
                ],
                "type": "setglobal",
                "view": "tablelib",
                "visible": "public"
            }
        ],
        "name": "table",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                21,
                                26
                            ],
                            "name": "list",
                            "start": [
                                21,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                21,
                                31
                            ],
                            "name": "sep",
                            "start": [
                                21,
                                28
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                21,
                                34
                            ],
                            "name": "i",
                            "start": [
                                21,
                                33
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                21,
                                37
                            ],
                            "name": "j",
                            "start": [
                                21,
                                36
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                    "finish": [
                        21,
                        42
                    ],
                    "rawdesc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function table.concat(list: table, sep?: string, i?: integer, j?: integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    21,
                    21
                ],
                "name": "concat",
                "rawdesc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                "start": [
                    21,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.concat",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                136,
                                27
                            ],
                            "name": "list",
                            "start": [
                                136,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                136,
                                37
                            ],
                            "name": "callback",
                            "start": [
                                136,
                                29
                            ],
                            "type": "local",
                            "view": "fun(key: string, value: any):<T>|nil"
                        }
                    ],
                    "desc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                    "finish": [
                        136,
                        42
                    ],
                    "rawdesc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T>|nil"
                        }
                    ],
                    "start": [
                        136,
                        0
                    ],
                    "type": "function",
                    "view": "function table.foreach(list: any, callback: fun(key: string, value: any):<T>|nil)\n  -> <T>|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    136,
                    22
                ],
                "name": "foreach",
                "rawdesc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                "start": [
                    136,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.foreach",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                28
                            ],
                            "name": "list",
                            "start": [
                                149,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                149,
                                38
                            ],
                            "name": "callback",
                            "start": [
                                149,
                                30
                            ],
                            "type": "local",
                            "view": "fun(key: string, value: any):<T>|nil"
                        }
                    ],
                    "desc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                    "finish": [
                        149,
                        43
                    ],
                    "rawdesc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T>|nil"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function table.foreachi(list: any, callback: fun(key: string, value: any):<T>|nil)\n  -> <T>|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    149,
                    23
                ],
                "name": "foreachi",
                "rawdesc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.foreachi",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                162,
                                24
                            ],
                            "name": "list",
                            "start": [
                                162,
                                20
                            ],
                            "type": "local",
                            "view": "<T>[]"
                        }
                    ],
                    "desc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                    "finish": [
                        162,
                        29
                    ],
                    "rawdesc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        162,
                        0
                    ],
                    "type": "function",
                    "view": "function table.getn(list: <T>[])\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    162,
                    19
                ],
                "name": "getn",
                "rawdesc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                "start": [
                    162,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.getn",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                32,
                                26
                            ],
                            "name": "list",
                            "start": [
                                32,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                32,
                                31
                            ],
                            "name": "pos",
                            "start": [
                                32,
                                28
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                32,
                                38
                            ],
                            "name": "value",
                            "start": [
                                32,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                    "finish": [
                        32,
                        43
                    ],
                    "rawdesc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function table.insert(list: table, pos: integer, value: any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    32,
                    21
                ],
                "name": "insert",
                "rawdesc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.insert",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                43,
                                25
                            ],
                            "name": "table",
                            "start": [
                                43,
                                20
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                    "finish": [
                        43,
                        30
                    ],
                    "rawdesc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        43,
                        0
                    ],
                    "type": "function",
                    "view": "function table.maxn(table: table)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    43,
                    19
                ],
                "name": "maxn",
                "rawdesc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                "start": [
                    43,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.maxn",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                63,
                                22
                            ],
                            "name": "a1",
                            "start": [
                                63,
                                20
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                63,
                                25
                            ],
                            "name": "f",
                            "start": [
                                63,
                                24
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                63,
                                28
                            ],
                            "name": "e",
                            "start": [
                                63,
                                27
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                63,
                                31
                            ],
                            "name": "t",
                            "start": [
                                63,
                                30
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                63,
                                35
                            ],
                            "name": "a2",
                            "start": [
                                63,
                                33
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                    "finish": [
                        63,
                        40
                    ],
                    "rawdesc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                    "returns": [
                        {
                            "name": "a2",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        63,
                        0
                    ],
                    "type": "function",
                    "view": "function table.move(a1: table, f: integer, e: integer, t: integer, a2?: table)\n  -> a2: table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    63,
                    19
                ],
                "name": "move",
                "rawdesc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                "start": [
                    63,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.move",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                73,
                                23
                            ],
                            "start": [
                                73,
                                20
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                    "finish": [
                        73,
                        28
                    ],
                    "rawdesc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function table.pack(...any)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    73,
                    19
                ],
                "name": "pack",
                "rawdesc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.pack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                83,
                                26
                            ],
                            "name": "list",
                            "start": [
                                83,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                83,
                                31
                            ],
                            "name": "pos",
                            "start": [
                                83,
                                28
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                    "finish": [
                        83,
                        36
                    ],
                    "rawdesc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function table.remove(list: table, pos?: integer)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    83,
                    21
                ],
                "name": "remove",
                "rawdesc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.remove",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                24
                            ],
                            "name": "list",
                            "start": [
                                93,
                                20
                            ],
                            "type": "local",
                            "view": "<T>[]"
                        },
                        {
                            "finish": [
                                93,
                                30
                            ],
                            "name": "comp",
                            "start": [
                                93,
                                26
                            ],
                            "type": "local",
                            "view": "(fun(a: <T>, b: <T>):boolean)?"
                        }
                    ],
                    "desc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                    "finish": [
                        93,
                        35
                    ],
                    "rawdesc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "function table.sort(list: <T>[], comp?: fun(a: <T>, b: <T>):boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    93,
                    19
                ],
                "name": "sort",
                "rawdesc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.sort",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                123,
                                26
                            ],
                            "name": "list",
                            "start": [
                                123,
                                22
                            ],
                            "type": "local",
                            "view": "{ [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9>, [10]: <T10> }"
                        },
                        {
                            "finish": [
                                123,
                                29
                            ],
                            "name": "i",
                            "start": [
                                123,
                                28
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                123,
                                32
                            ],
                            "name": "j",
                            "start": [
                                123,
                                31
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                    "finish": [
                        123,
                        37
                    ],
                    "rawdesc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T1>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T2>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T3>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T4>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T5>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T6>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T7>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T8>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T9>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T10>"
                        }
                    ],
                    "start": [
                        123,
                        0
                    ],
                    "type": "function",
                    "view": "function table.unpack(list: { [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9>, [10]: <T10> }, i?: integer, j?: integer)\n  -> <T1>\n  2. <T2>\n  3. <T3>\n  4. <T4>\n  5. <T5>\n  6. <T6>\n  7. <T7>\n  8. <T8>\n  9. <T9>\n 10. <T10>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    123,
                    21
                ],
                "name": "unpack",
                "rawdesc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                "start": [
                    123,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "table.unpack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table\"])\n",
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    7,
                    18
                ],
                "rawdesc": "\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table\"])\n",
                "start": [
                    7,
                    10
                ],
                "type": "doc.class",
                "view": "tablelib",
                "visible": "public"
            }
        ],
        "fields": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                21,
                                26
                            ],
                            "name": "list",
                            "start": [
                                21,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                21,
                                31
                            ],
                            "name": "sep",
                            "start": [
                                21,
                                28
                            ],
                            "type": "local",
                            "view": "string?"
                        },
                        {
                            "finish": [
                                21,
                                34
                            ],
                            "name": "i",
                            "start": [
                                21,
                                33
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                21,
                                37
                            ],
                            "name": "j",
                            "start": [
                                21,
                                36
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                    "finish": [
                        21,
                        42
                    ],
                    "rawdesc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        21,
                        0
                    ],
                    "type": "function",
                    "view": "function table.concat(list: table, sep?: string, i?: integer, j?: integer)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    21,
                    21
                ],
                "name": "concat",
                "rawdesc": "\nGiven a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.concat\"])",
                "start": [
                    21,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                136,
                                27
                            ],
                            "name": "list",
                            "start": [
                                136,
                                23
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                136,
                                37
                            ],
                            "name": "callback",
                            "start": [
                                136,
                                29
                            ],
                            "type": "local",
                            "view": "fun(key: string, value: any):<T>|nil"
                        }
                    ],
                    "desc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                    "finish": [
                        136,
                        42
                    ],
                    "rawdesc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T>|nil"
                        }
                    ],
                    "start": [
                        136,
                        0
                    ],
                    "type": "function",
                    "view": "function table.foreach(list: any, callback: fun(key: string, value: any):<T>|nil)\n  -> <T>|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    136,
                    22
                ],
                "name": "foreach",
                "rawdesc": "\nExecutes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreach\"])",
                "start": [
                    136,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                149,
                                28
                            ],
                            "name": "list",
                            "start": [
                                149,
                                24
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                149,
                                38
                            ],
                            "name": "callback",
                            "start": [
                                149,
                                30
                            ],
                            "type": "local",
                            "view": "fun(key: string, value: any):<T>|nil"
                        }
                    ],
                    "desc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                    "finish": [
                        149,
                        43
                    ],
                    "rawdesc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T>|nil"
                        }
                    ],
                    "start": [
                        149,
                        0
                    ],
                    "type": "function",
                    "view": "function table.foreachi(list: any, callback: fun(key: string, value: any):<T>|nil)\n  -> <T>|nil"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    149,
                    23
                ],
                "name": "foreachi",
                "rawdesc": "\nExecutes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.foreachi\"])",
                "start": [
                    149,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": true,
                "desc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                162,
                                24
                            ],
                            "name": "list",
                            "start": [
                                162,
                                20
                            ],
                            "type": "local",
                            "view": "<T>[]"
                        }
                    ],
                    "desc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                    "finish": [
                        162,
                        29
                    ],
                    "rawdesc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        162,
                        0
                    ],
                    "type": "function",
                    "view": "function table.getn(list: <T>[])\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    162,
                    19
                ],
                "name": "getn",
                "rawdesc": "\nReturns the number of elements in the table. This function is equivalent to `#list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.getn\"])",
                "start": [
                    162,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                32,
                                26
                            ],
                            "name": "list",
                            "start": [
                                32,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                32,
                                31
                            ],
                            "name": "pos",
                            "start": [
                                32,
                                28
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                32,
                                38
                            ],
                            "name": "value",
                            "start": [
                                32,
                                33
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                    "finish": [
                        32,
                        43
                    ],
                    "rawdesc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                    "start": [
                        32,
                        0
                    ],
                    "type": "function",
                    "view": "function table.insert(list: table, pos: integer, value: any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    32,
                    21
                ],
                "name": "insert",
                "rawdesc": "\nInserts element `value` at position `pos` in `list`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.insert\"])",
                "start": [
                    32,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                43,
                                25
                            ],
                            "name": "table",
                            "start": [
                                43,
                                20
                            ],
                            "type": "local",
                            "view": "table"
                        }
                    ],
                    "desc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                    "finish": [
                        43,
                        30
                    ],
                    "rawdesc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "integer"
                        }
                    ],
                    "start": [
                        43,
                        0
                    ],
                    "type": "function",
                    "view": "function table.maxn(table: table)\n  -> integer"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    43,
                    19
                ],
                "name": "maxn",
                "rawdesc": "\nReturns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.maxn\"])",
                "start": [
                    43,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                63,
                                22
                            ],
                            "name": "a1",
                            "start": [
                                63,
                                20
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                63,
                                25
                            ],
                            "name": "f",
                            "start": [
                                63,
                                24
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                63,
                                28
                            ],
                            "name": "e",
                            "start": [
                                63,
                                27
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                63,
                                31
                            ],
                            "name": "t",
                            "start": [
                                63,
                                30
                            ],
                            "type": "local",
                            "view": "integer"
                        },
                        {
                            "finish": [
                                63,
                                35
                            ],
                            "name": "a2",
                            "start": [
                                63,
                                33
                            ],
                            "type": "local",
                            "view": "table?"
                        }
                    ],
                    "desc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                    "finish": [
                        63,
                        40
                    ],
                    "rawdesc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                    "returns": [
                        {
                            "name": "a2",
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        63,
                        0
                    ],
                    "type": "function",
                    "view": "function table.move(a1: table, f: integer, e: integer, t: integer, a2?: table)\n  -> a2: table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    63,
                    19
                ],
                "name": "move",
                "rawdesc": "\nMoves elements from table `a1` to table `a2`.\n```lua\na2[t],··· =\na1[f],···,a1[e]\nreturn a2\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.move\"])",
                "start": [
                    63,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                73,
                                23
                            ],
                            "start": [
                                73,
                                20
                            ],
                            "type": "...",
                            "view": "unknown"
                        }
                    ],
                    "desc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                    "finish": [
                        73,
                        28
                    ],
                    "rawdesc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "table"
                        }
                    ],
                    "start": [
                        73,
                        0
                    ],
                    "type": "function",
                    "view": "function table.pack(...any)\n  -> table"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    73,
                    19
                ],
                "name": "pack",
                "rawdesc": "\nReturns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `\"n\"` with the total number of arguments.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.pack\"])",
                "start": [
                    73,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                83,
                                26
                            ],
                            "name": "list",
                            "start": [
                                83,
                                22
                            ],
                            "type": "local",
                            "view": "table"
                        },
                        {
                            "finish": [
                                83,
                                31
                            ],
                            "name": "pos",
                            "start": [
                                83,
                                28
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                    "finish": [
                        83,
                        36
                    ],
                    "rawdesc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        83,
                        0
                    ],
                    "type": "function",
                    "view": "function table.remove(list: table, pos?: integer)\n  -> any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    83,
                    21
                ],
                "name": "remove",
                "rawdesc": "\nRemoves from `list` the element at position `pos`, returning the value of the removed element.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.remove\"])",
                "start": [
                    83,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                93,
                                24
                            ],
                            "name": "list",
                            "start": [
                                93,
                                20
                            ],
                            "type": "local",
                            "view": "<T>[]"
                        },
                        {
                            "finish": [
                                93,
                                30
                            ],
                            "name": "comp",
                            "start": [
                                93,
                                26
                            ],
                            "type": "local",
                            "view": "(fun(a: <T>, b: <T>):boolean)?"
                        }
                    ],
                    "desc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                    "finish": [
                        93,
                        35
                    ],
                    "rawdesc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                    "start": [
                        93,
                        0
                    ],
                    "type": "function",
                    "view": "function table.sort(list: <T>[], comp?: fun(a: <T>, b: <T>):boolean)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    93,
                    19
                ],
                "name": "sort",
                "rawdesc": "\nSorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.sort\"])",
                "start": [
                    93,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                123,
                                26
                            ],
                            "name": "list",
                            "start": [
                                123,
                                22
                            ],
                            "type": "local",
                            "view": "{ [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9>, [10]: <T10> }"
                        },
                        {
                            "finish": [
                                123,
                                29
                            ],
                            "name": "i",
                            "start": [
                                123,
                                28
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                123,
                                32
                            ],
                            "name": "j",
                            "start": [
                                123,
                                31
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                    "finish": [
                        123,
                        37
                    ],
                    "rawdesc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T1>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T2>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T3>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T4>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T5>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T6>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T7>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T8>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T9>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T10>"
                        }
                    ],
                    "start": [
                        123,
                        0
                    ],
                    "type": "function",
                    "view": "function table.unpack(list: { [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9>, [10]: <T10> }, i?: integer, j?: integer)\n  -> <T1>\n  2. <T2>\n  3. <T3>\n  4. <T4>\n  5. <T5>\n  6. <T6>\n  7. <T7>\n  8. <T8>\n  9. <T9>\n 10. <T10>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/table.lua",
                "finish": [
                    123,
                    21
                ],
                "name": "unpack",
                "rawdesc": "\nReturns the elements from the given list. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\nBy default, `i` is `1` and `j` is `#list`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-table.unpack\"])",
                "start": [
                    123,
                    9
                ],
                "type": "setfield",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "tablelib",
        "type": "type",
        "view": "tablelib"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    10,
                    16
                ],
                "start": [
                    10,
                    10
                ],
                "type": "doc.class",
                "view": "thread",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "thread",
        "type": "type",
        "view": "thread"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nWhen called with no `base`, `tonumber` tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then `tonumber` returns this number; otherwise, it returns `fail`.\n\nThe conversion of strings can result in integers or floats, according to the lexical conventions of Lua (see [§3.1](command:extension.lua.doc?[\"en-us/51/manual.html/3.1\"])). The string may have leading and trailing spaces and a sign.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tonumber\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                352,
                                19
                            ],
                            "name": "e",
                            "start": [
                                352,
                                18
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nWhen called with no `base`, `tonumber` tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then `tonumber` returns this number; otherwise, it returns `fail`.\n\nThe conversion of strings can result in integers or floats, according to the lexical conventions of Lua (see [§3.1](command:extension.lua.doc?[\"en-us/51/manual.html/3.1\"])). The string may have leading and trailing spaces and a sign.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tonumber\"])",
                    "finish": [
                        352,
                        24
                    ],
                    "rawdesc": "\nWhen called with no `base`, `tonumber` tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then `tonumber` returns this number; otherwise, it returns `fail`.\n\nThe conversion of strings can result in integers or floats, according to the lexical conventions of Lua (see [§3.1](command:extension.lua.doc?[\"en-us/51/manual.html/3.1\"])). The string may have leading and trailing spaces and a sign.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tonumber\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "number?"
                        }
                    ],
                    "start": [
                        352,
                        0
                    ],
                    "type": "function",
                    "view": "function tonumber(e: any)\n  -> number?"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    352,
                    17
                ],
                "rawdesc": "\nWhen called with no `base`, `tonumber` tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then `tonumber` returns this number; otherwise, it returns `fail`.\n\nThe conversion of strings can result in integers or floats, according to the lexical conventions of Lua (see [§3.1](command:extension.lua.doc?[\"en-us/51/manual.html/3.1\"])). The string may have leading and trailing spaces and a sign.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tonumber\"])",
                "start": [
                    352,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "tonumber",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReceives a value of any type and converts it to a string in a human-readable format.\n\nIf the metatable of `v` has a `__tostring` field, then `tostring` calls the corresponding value with `v` as argument, and uses the result of the call as its result. Otherwise, if the metatable of `v` has a `__name` field with a string value, `tostring` may use that string in its final result.\n\nFor complete control of how numbers are converted, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tostring\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                367,
                                19
                            ],
                            "name": "v",
                            "start": [
                                367,
                                18
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReceives a value of any type and converts it to a string in a human-readable format.\n\nIf the metatable of `v` has a `__tostring` field, then `tostring` calls the corresponding value with `v` as argument, and uses the result of the call as its result. Otherwise, if the metatable of `v` has a `__name` field with a string value, `tostring` may use that string in its final result.\n\nFor complete control of how numbers are converted, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tostring\"])",
                    "finish": [
                        367,
                        24
                    ],
                    "rawdesc": "\nReceives a value of any type and converts it to a string in a human-readable format.\n\nIf the metatable of `v` has a `__tostring` field, then `tostring` calls the corresponding value with `v` as argument, and uses the result of the call as its result. Otherwise, if the metatable of `v` has a `__name` field with a string value, `tostring` may use that string in its final result.\n\nFor complete control of how numbers are converted, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tostring\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "string"
                        }
                    ],
                    "start": [
                        367,
                        0
                    ],
                    "type": "function",
                    "view": "function tostring(v: any)\n  -> string"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    367,
                    17
                ],
                "rawdesc": "\nReceives a value of any type and converts it to a string in a human-readable format.\n\nIf the metatable of `v` has a `__tostring` field, then `tostring` calls the corresponding value with `v` as argument, and uses the result of the call as its result. Otherwise, if the metatable of `v` has a `__name` field with a string value, `tostring` may use that string in its final result.\n\nFor complete control of how numbers are converted, use [string.format](command:extension.lua.doc?[\"en-us/51/manual.html/pdf-string.format\"]).\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-tostring\"])",
                "start": [
                    367,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "tostring",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "extends": [
                    {
                        "finish": [
                            6,
                            23
                        ],
                        "start": [
                            6,
                            16
                        ],
                        "type": "doc.extends.name",
                        "view": "boolean"
                    }
                ],
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    6,
                    23
                ],
                "start": [
                    6,
                    10
                ],
                "type": "doc.class",
                "view": "true",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "true",
        "type": "type",
        "view": "true"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the type of its only argument, coded as a string. The possible results of this function are `\"nil\"` (a string, not the value `nil`), `\"number\"`, `\"string\"`, `\"boolean\"`, `\"table\"`, `\"function\"`, `\"thread\"`, and `\"userdata\"`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-type\"])\n\n\n```lua\ntype:\n    | \"nil\"\n    | \"number\"\n    | \"string\"\n    | \"boolean\"\n    | \"table\"\n    | \"function\"\n    | \"thread\"\n    | \"userdata\"\n```",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                388,
                                15
                            ],
                            "name": "v",
                            "start": [
                                388,
                                14
                            ],
                            "type": "local",
                            "view": "any"
                        }
                    ],
                    "desc": "\nReturns the type of its only argument, coded as a string. The possible results of this function are `\"nil\"` (a string, not the value `nil`), `\"number\"`, `\"string\"`, `\"boolean\"`, `\"table\"`, `\"function\"`, `\"thread\"`, and `\"userdata\"`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-type\"])\n\n\n```lua\ntype:\n    | \"nil\"\n    | \"number\"\n    | \"string\"\n    | \"boolean\"\n    | \"table\"\n    | \"function\"\n    | \"thread\"\n    | \"userdata\"\n```",
                    "finish": [
                        388,
                        20
                    ],
                    "rawdesc": "\nReturns the type of its only argument, coded as a string. The possible results of this function are `\"nil\"` (a string, not the value `nil`), `\"number\"`, `\"string\"`, `\"boolean\"`, `\"table\"`, `\"function\"`, `\"thread\"`, and `\"userdata\"`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-type\"])\n\n\n```lua\ntype:\n    | \"nil\"\n    | \"number\"\n    | \"string\"\n    | \"boolean\"\n    | \"table\"\n    | \"function\"\n    | \"thread\"\n    | \"userdata\"\n```",
                    "returns": [
                        {
                            "name": "type",
                            "type": "function.return",
                            "view": "\"boolean\"|\"function\"|\"nil\"|\"number\"|\"string\"...(+3)"
                        }
                    ],
                    "start": [
                        388,
                        0
                    ],
                    "type": "function",
                    "view": "function type(v: any)\n  -> type: \"boolean\"|\"function\"|\"nil\"|\"number\"|\"string\"...(+3)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    388,
                    13
                ],
                "rawdesc": "\nReturns the type of its only argument, coded as a string. The possible results of this function are `\"nil\"` (a string, not the value `nil`), `\"number\"`, `\"string\"`, `\"boolean\"`, `\"table\"`, `\"function\"`, `\"thread\"`, and `\"userdata\"`.\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-type\"])\n\n\n```lua\ntype:\n    | \"nil\"\n    | \"number\"\n    | \"string\"\n    | \"boolean\"\n    | \"table\"\n    | \"function\"\n    | \"thread\"\n    | \"userdata\"\n```",
                "start": [
                    388,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "type",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "desc": "```lua\ntype:\n    | \"nil\"\n    | \"number\"\n    | \"string\"\n    | \"boolean\"\n    | \"table\"\n    | \"function\"\n    | \"thread\"\n    | \"userdata\"\n```",
                "finish": [
                    377,
                    15
                ],
                "rawdesc": "```lua\ntype:\n    | \"nil\"\n    | \"number\"\n    | \"string\"\n    | \"boolean\"\n    | \"table\"\n    | \"function\"\n    | \"thread\"\n    | \"userdata\"\n```",
                "start": [
                    369,
                    10
                ],
                "type": "doc.alias",
                "view": "\"boolean\"|\"function\"|\"nil\"|\"number\"|\"string\"...(+3)"
            }
        ],
        "fields": [],
        "name": "type",
        "type": "type",
        "view": "type"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    2,
                    17
                ],
                "start": [
                    2,
                    10
                ],
                "type": "doc.class",
                "view": "unknown",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "unknown",
        "type": "type",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nReturns the elements from the given `list`. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-unpack\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                448,
                                20
                            ],
                            "name": "list",
                            "start": [
                                448,
                                16
                            ],
                            "type": "local",
                            "view": "{ [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9>, [10]: <T10> }"
                        },
                        {
                            "finish": [
                                448,
                                23
                            ],
                            "name": "i",
                            "start": [
                                448,
                                22
                            ],
                            "type": "local",
                            "view": "integer?"
                        },
                        {
                            "finish": [
                                448,
                                26
                            ],
                            "name": "j",
                            "start": [
                                448,
                                25
                            ],
                            "type": "local",
                            "view": "integer?"
                        }
                    ],
                    "desc": "\nReturns the elements from the given `list`. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-unpack\"])",
                    "finish": [
                        448,
                        31
                    ],
                    "rawdesc": "\nReturns the elements from the given `list`. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-unpack\"])",
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T1>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T2>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T3>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T4>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T5>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T6>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T7>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T8>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T9>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T10>"
                        }
                    ],
                    "start": [
                        448,
                        0
                    ],
                    "type": "function",
                    "view": "function unpack(list: { [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9>, [10]: <T10> }, i?: integer, j?: integer)\n  -> <T1>\n  2. <T2>\n  3. <T3>\n  4. <T4>\n  5. <T5>\n  6. <T6>\n  7. <T7>\n  8. <T8>\n  9. <T9>\n 10. <T10>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    448,
                    15
                ],
                "rawdesc": "\nReturns the elements from the given `list`. This function is equivalent to\n```lua\n    return list[i], list[i+1], ···, list[j]\n```\n\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-unpack\"])",
                "start": [
                    448,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            },
            {
                "async": false,
                "deprecated": false,
                "extends": {
                    "args": [
                        {
                            "finish": [
                                455,
                                20
                            ],
                            "name": "list",
                            "start": [
                                455,
                                16
                            ],
                            "type": "local",
                            "view": "{ [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9> }"
                        }
                    ],
                    "finish": [
                        455,
                        25
                    ],
                    "returns": [
                        {
                            "type": "function.return",
                            "view": "<T1>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T2>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T3>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T4>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T5>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T6>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T7>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T8>"
                        },
                        {
                            "type": "function.return",
                            "view": "<T9>"
                        }
                    ],
                    "start": [
                        455,
                        0
                    ],
                    "type": "function",
                    "view": "function unpack(list: { [1]: <T1>, [2]: <T2>, [3]: <T3>, [4]: <T4>, [5]: <T5>, [6]: <T6>, [7]: <T7>, [8]: <T8>, [9]: <T9> })\n  -> <T1>\n  2. <T2>\n  3. <T3>\n  4. <T4>\n  5. <T5>\n  6. <T6>\n  7. <T7>\n  8. <T8>\n  9. <T9>"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    455,
                    15
                ],
                "start": [
                    455,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "unpack",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/builtin.lua",
                "finish": [
                    13,
                    18
                ],
                "start": [
                    13,
                    10
                ],
                "type": "doc.class",
                "view": "userdata",
                "visible": "public"
            }
        ],
        "fields": [],
        "name": "userdata",
        "type": "type",
        "view": "userdata"
    },
    {
        "defines": [
            {
                "desc": "```lua\nvbuf:\n    | \"no\" -- Output operation appears immediately.\n    | \"full\" -- Performed only when the buffer is full.\n    | \"line\" -- Buffered until a newline is output.\n```",
                "finish": [
                    243,
                    11
                ],
                "rawdesc": "```lua\nvbuf:\n    | \"no\" -- Output operation appears immediately.\n    | \"full\" -- Performed only when the buffer is full.\n    | \"line\" -- Buffered until a newline is output.\n```",
                "start": [
                    240,
                    10
                ],
                "type": "doc.alias",
                "view": "\"full\"|\"line\"|\"no\""
            }
        ],
        "fields": [],
        "name": "vbuf",
        "type": "type",
        "view": "vbuf"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": true,
                "desc": "\nEmits a warning with a message composed by the concatenation of all its arguments (which should be strings).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-warn\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                405,
                                21
                            ],
                            "name": "message",
                            "start": [
                                405,
                                14
                            ],
                            "type": "local",
                            "view": "string"
                        },
                        {
                            "finish": [
                                405,
                                26
                            ],
                            "start": [
                                405,
                                23
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nEmits a warning with a message composed by the concatenation of all its arguments (which should be strings).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-warn\"])",
                    "finish": [
                        405,
                        31
                    ],
                    "rawdesc": "\nEmits a warning with a message composed by the concatenation of all its arguments (which should be strings).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-warn\"])",
                    "start": [
                        405,
                        0
                    ],
                    "type": "function",
                    "view": "function warn(message: string, ...any)"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    405,
                    13
                ],
                "rawdesc": "\nEmits a warning with a message composed by the concatenation of all its arguments (which should be strings).\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-warn\"])",
                "start": [
                    405,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "warn",
        "type": "variable",
        "view": "unknown"
    },
    {
        "defines": [
            {
                "async": false,
                "deprecated": false,
                "desc": "\nCalls function `f` with the given arguments in protected mode with a new message handler.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-xpcall\"])",
                "extends": {
                    "args": [
                        {
                            "finish": [
                                419,
                                17
                            ],
                            "name": "f",
                            "start": [
                                419,
                                16
                            ],
                            "type": "local",
                            "view": "fun(...any):...unknown"
                        },
                        {
                            "finish": [
                                419,
                                23
                            ],
                            "name": "msgh",
                            "start": [
                                419,
                                19
                            ],
                            "type": "local",
                            "view": "function"
                        },
                        {
                            "finish": [
                                419,
                                29
                            ],
                            "name": "arg1",
                            "start": [
                                419,
                                25
                            ],
                            "type": "local",
                            "view": "any"
                        },
                        {
                            "finish": [
                                419,
                                34
                            ],
                            "start": [
                                419,
                                31
                            ],
                            "type": "...",
                            "view": "any"
                        }
                    ],
                    "desc": "\nCalls function `f` with the given arguments in protected mode with a new message handler.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-xpcall\"])",
                    "finish": [
                        419,
                        39
                    ],
                    "rawdesc": "\nCalls function `f` with the given arguments in protected mode with a new message handler.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-xpcall\"])",
                    "returns": [
                        {
                            "name": "success",
                            "type": "function.return",
                            "view": "boolean"
                        },
                        {
                            "name": "result",
                            "type": "function.return",
                            "view": "any"
                        },
                        {
                            "name": "...",
                            "type": "function.return",
                            "view": "any"
                        }
                    ],
                    "start": [
                        419,
                        0
                    ],
                    "type": "function",
                    "view": "function xpcall(f: fun(...any):...unknown, msgh: function, arg1?: any, ...any)\n  -> success: boolean\n  2. result: any\n  3. ...any"
                },
                "file": "[FOREIGN] /Users/mike/.cache/lua-language-server/meta/LuaJIT en-us utf8/basic.lua",
                "finish": [
                    419,
                    15
                ],
                "rawdesc": "\nCalls function `f` with the given arguments in protected mode with a new message handler.\n\n[View documents](command:extension.lua.doc?[\"en-us/54/manual.html/pdf-xpcall\"])",
                "start": [
                    419,
                    9
                ],
                "type": "setglobal",
                "view": "function",
                "visible": "public"
            }
        ],
        "name": "xpcall",
        "type": "variable",
        "view": "unknown"
    }
]